Jupyter Notebook(仅)内存错误,相同的代码在传统的.py中运行并且有效

时间:2017-05-09 09:43:11

标签: python deep-learning jupyter-notebook jupyter jupyter-console

我有一个深度学习课程的作业,他们提供了一个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 GB的RAM不够,并且当代码在Jupyter之外运行时没有出现问题。

我的猜测是它与Jupyter或Chrome的内存限制有关,但我不确定,也不知道如何解决它。

顺便说一下:

  • 我有一台装有4GB内存的Windows 10笔记本电脑
  • 和Chrome版本57.0.2987.133(64位)

5 个答案:

答案 0 :(得分:1)

显然,当python安装不是最好的时候会发生这种情况。

事实上,在解决问题之前,我已经在Windows上手动安装了python 2.7和我需要的软件包,在弄乱了近两天后试图找出问题所在,我用Conda重新安装了一切和问题解决了。​​

我猜Conda正在安装更好的内存管理软件包,这是主要原因。

答案 1 :(得分:1)

尝试使用管理员权限运行。为我工作。

答案 2 :(得分:1)

在加载.npy文件时,我发生了类似的事情。释放RAM解决了这个问题。它没有足够的内存来将文件加载到变量中。实际上,firefox和chrome都在我的系统上运行,关闭firefox解决了这个问题。

有用的命令:free -h 注意事项:在自己解释此命令之前。强烈建议您浏览此页面:https://www.linuxatemyram.com/

答案 3 :(得分:0)

这个问题我只迟了一年零两个月。关于原因的技术答案在这里得到了很好的解释:https://superuser.com/questions/372881/is-there-a-technical-reason-why-32-bit-windows-is-limited-to-4gb-of-ram

这也暗示了conda解决方案起作用的原因。

但是对于懒惰的工程师来说,不变的解决方法是,关闭并非绝对必要的Chrome选项卡,然后重新启动内核,以便重新启动。

Kernel > Restart (& Run All)

答案 4 :(得分:0)

您可以减少数据集以进行培训和测试,这可以解决内存错误问题。