在Google Colab中使用pickle.dump时,由于未知原因导致会话崩溃

时间:2019-04-03 20:32:11

标签: tensorflow keras neural-network deep-learning google-colaboratory

我正在Google Colab环境中使用Keras创建暹罗网络。我使用了GitHub中的这段代码。但是当我尝试运行pickle.dump代码时出现错误:

with open(os.path.join(save_path,"train.pickle"), "wb") as f:
    pickle.dump((X,c), f)

错误:OverflowError: cannot serialize a bytes object larger than 4 GiB

因此,我使用了“ protocol = 4的泡菜”

pickle.dump((X,c), f, protocol=4)

但是在运行此代码期间会话已停止,并且我收到此消息"Session crash for an unknown reason "Your session crashed after using all available RAM

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

我的猜测是您的运行时内存不足。

我能够腌制4 GB的数据,但是这样做需要大约8G的内存。

您可以使用“运行时”菜单的“查看运行时日志”来查看运行时日志。这通常具有崩溃的提示。在这种情况下,它会报告许多大分配。

示例: enter image description here

会话管理器将显示内存。就我而言,什么也不做:

enter image description here

答案 1 :(得分:0)

我尝试了这个并且对我有用

import pickle
pickle_out = open("train.pickle","wb")
pickle.dump((X,c), pickle_out)
pickle_out.close()