我正在使用一种简单(不一定高效)的方法来保存Pytorch模型。
import torch
from google.colab import files
torch.save(model, filename) # save a trained model on the VM
files.download(filename) # download the model to local
best_model = files.upload() # select the model just downloaded
best_model[filename] # access the model
Colab在执行最后一行期间断开连接,点击RECONNECT
标签始终显示ALLOCATING
- > CONNECTING
(失败,"无法连接到运行时"左下角的消息) - > RECONNECT
。同时,执行任何一个单元格都会显示错误消息"无法执行单元格,无法向运行时发送执行消息:[object CloseEvent]"
我知道它与最后一行有关,因为我可以成功连接我的其他谷歌帐户,而这些帐户并没有执行。
为什么会这样?似乎执行最后一行的谷歌帐户无法再连接到运行时。
修改
一天晚上,我可以在会话到期后重新连接谷歌帐户。我只是在评论中尝试了这种方法,并发现只有files.upload()
Pytorch模型会导致问题。上传完成后,Colab将断开连接。
答案 0 :(得分:1)
尝试禁用广告拦截器。为我工作
答案 1 :(得分:0)
(我在阅读你的更新之前写了这个答案。想想它可能会有帮助。)
files.upload()
仅用于上传文件。我们没有理由期望它返回一些pytorch type/model
。
当你致电a = files.upload()
时,a
是一个文字字典 - 一个大字节数组。
{'my_image.png': b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR....' }
type(a['my_image.png'])
就像你open('my_image', 'b').read()
所以,我认为下一行best_model[filename]
尝试打印整个巨大的字节数组,这会导致colab错误。