12

我有一个深度学习课程的作业,他们提供了一个 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 RAM 的 Windows 10 笔记本电脑
  • 和 Chrome 版本 57.0.2987.133(64 位)
4

5 回答 5

5

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

这也暗示了 conda 解决方案为何有效。

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

Kernel > Restart (& Run All)
于 2018-07-12T12:05:02.957 回答
3

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

事实上,在解决问题之前,我已经在 windows 上手动安装了 python 2.7 和我需要的软件包,在搞砸了将近两天试图找出问题所在之后,我用 Conda 重新安装了所有东西,问题就解决了。

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

于 2017-08-02T23:54:13.313 回答
2

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

于 2018-01-29T10:25:03.627 回答
1

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

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

于 2018-06-08T06:17:37.887 回答
-7

您可以减少用于训练和测试的数据集,这可以解决您的内存错误问题。

于 2019-04-30T19:08:56.010 回答