如何在调用pickle.load()时解决MemoryError

时间:2018-03-09 06:53:43

标签: python tensorflow deep-learning

我是深度学习世界的初学者。这就是为什么我正在测试用于分类图像的示例代码。

但是,在执行train.py后很快就收到了像MemoryError这样的错误消息。

此示例代码来自以下网址。

https://medium.com/@ageitgey/machine-learning-is-fun-part-3-deep-learning-and-convolutional-neural-networks-f40359318721

我该如何解决这个问题?

提前致谢。

steven@steven-VirtualBox:~/work/tflearn$ ll
total 5794836
drwxr-xr-x 3 steven steven       4096  3월  9 15:21 ./
drwxr-xr-x 6 steven steven       4096  2월 27 17:16 ../
-rw-r--r-- 1 steven steven      12288  2월 28 11:56 .full_dataset.pkl.swp
-rw-r--r-- 1 steven steven        147  2월 27 17:20 checkpoint
-rw-r--r-- 1 steven steven      61214  2월 27 17:52 convnet_cifar10.py
-rw-rw-r-- 1 steven steven  450189480  2월 28 10:32 data.zip
-rw-rw-r-- 1 steven steven 5483602303  6월 13  2016 full_dataset.pkl
drwxr-xr-x 2 steven steven       4096  2월 27 17:19 mnist/
-rw-r--r-- 1 steven steven       2884  2월 27 17:47 train.py
-rw-r--r-- 1 steven steven       2611  2월 28 11:50 train2.py
-rw-r--r-- 1 steven steven       2483  2월 27 17:19 weights_persistence.py
steven@steven-VirtualBox:~/work/tflearn$ 
steven@steven-VirtualBox:~/work/tflearn$ python train.py 
Traceback (most recent call last):
  File "train.py", line 20, in <module>
    X, Y, X_test, Y_test = pickle.load(open("full_dataset.pkl", "rb"))
MemoryError

我的电脑规格如下。

  • 操作系统:Ubuntu 64位
  • CPU:Intel(R)Core(TM)i5-7200U CPU @ 2.50GHz
  • 内存:11350MB

2 个答案:

答案 0 :(得分:0)

你可能没有足够的RAM来打开文件,众所周知,pickle需要比数据大小多2-3倍的RAM。

答案 1 :(得分:0)

我不确定它会有所帮助但是尝试:

而不是:

X, Y, X_test, Y_test = pickle.load(open("full_dataset.pkl", "rb"))

尝试:

with open("full_dataset.pkl", "rb") as file_object:
    X, Y, X_test, Y_test = pickle.load(file_object)
#Do further Stuff