it-swarm.com.ru

Jupyter Notebook (только) Ошибка памяти, тот же код выполняется в обычном .py и работает

У меня есть задание для класса Deep Learning, и они предоставляют записную книжку Jupyter в качестве базового кода, дело в том, что после запуска импорта и преобразования данных записная книжка Jupyter через «Ошибка памяти», после некоторого анализа вы попытались скомпилировать тот же код в обычном .py файле, и все работает хорошо.

Дело в том, что я должен (желательно) использовать ноутбук Jupyter в качестве основы для разработки, так как он более интерактивен для задач такого рода.

<ipython-input-2-846f80a40ce2> in <module>()
  2 # Load the raw CIFAR-10 data
  3 cifar10_dir = 'datasets\\'
----> 4 X, y = load_CIFAR10(cifar10_dir)

C:\path\data_utils.pyc in load_CIFAR10(ROOT)
     18     f = os.path.join(ROOT, 'cifar10_train.p')
     19     print('Path:  ' + f );
---> 20     Xtr, Ytr = load_CIFAR_batch(f)
     21     return Xtr, Ytr
     22 

C:\path\data_utils.pyc in load_CIFAR_batch(filename)
     10         X = np.array(datadict['data'])
     11         Y = np.array(datadict['labels'])
---> 12         X = X.reshape(-1, 3, 32, 32).transpose(0,2,3,1).astype("float")
     13         return X, Y
     14 

MemoryError: 

Ошибка возникает в строке 12, я знаю, это назначение, занимающее память, но это не значит, что 4 ГБ RAM не хватит, и это было подтверждено, когда код без проблем запускается за пределами Jupyter.

Полагаю, это связано с ограничением памяти Jupyter или Chrome, но я не уверен, а также не знаю, как его решить.

Кстати:

  • У меня ноутбук с Windows 10 с 4 ГБ оперативной памяти
  • и Chrome версии 57.0.2987.133 (64-разрядная версия)
5
Daniel Ordoñez

Попробуйте запустить с правами администратора. Работал на меня. 

1
Andriy Stolyar

По-видимому, это происходит, когда установка Python не самая лучшая.

На самом деле, прежде чем решить проблему, я вручную установил на windows python 2.7 и пакеты, которые мне были нужны, после того, как я почти два дня возился, пытаясь выяснить, в чем проблема, я переустановил все с помощью Conda, и проблема была решена.

Я думаю, что Конда устанавливает лучшие пакеты управления памятью, и это было главной причиной.

1
Daniel Ordoñez

Я только на год и 2 месяца опоздал на этот вопрос. Технический ответ о том, почему это действительно хорошо объяснено здесь: https://superuser.com/questions/372881/is-there-a-technical-reason-why-32-bit-windows-is-limited-to- 4 ГБ оперативной памяти

Это также подразумевает, почему решение conda работает.

Но для обходного пути без изменений для ленивых инженеров закройте вкладки Chrome, которые не являются абсолютно необходимыми, и перезапустите ядро, чтобы оно началось заново.

Kernel > Restart (& Run All)
0
Lefty G Balogh

Аналогичная вещь произошла со мной при загрузке файла .npy. Освобождение RAM решило проблему. Недостаточно памяти для загрузки файла в переменные. На самом деле, Firefox и Chrome работали в моей системе, и закрытие Firefox решило проблему. 

Полезные команды: free -h Примечание предосторожности: перед интерпретацией этой команды самостоятельно. Настоятельно рекомендуется пройти по этой странице: https://www.linuxatemyram.com/ .

0
Delsilon