谷歌Colab:“;无法连接到运行时";从本地上传Pytorch模型后

谷歌Colab:“;无法连接到运行时";从本地上传Pytorch模型后,pytorch,google-colaboratory,data-persistence,Pytorch,Google Colaboratory,Data Persistence,我使用一种简单(不一定有效)的方法来保存Pytorch模型 导入火炬 从google.colab导入文件 torch.save(model,filename)#在虚拟机上保存经过培训的模型 files.download(文件名)#将模型下载到本地 best_model=files.upload()#选择刚下载的模型 最佳_模型[文件名]#访问模型 Colab在执行最后一行时断开连接,点击重新连接选项卡总是显示分配->连接(失败,左下角显示“无法连接到运行时”消息)->重新连接。同时,执行任何一

我使用一种简单(不一定有效)的方法来保存Pytorch模型

导入火炬
从google.colab导入文件
torch.save(model,filename)#在虚拟机上保存经过培训的模型
files.download(文件名)#将模型下载到本地
best_model=files.upload()#选择刚下载的模型
最佳_模型[文件名]#访问模型
Colab在执行最后一行时断开连接,点击
重新连接
选项卡总是显示
分配
->
连接
(失败,左下角显示“无法连接到运行时”消息)->
重新连接
。同时,执行任何一个单元格都会给出错误消息“未能执行单元格,无法向运行时发送执行消息:[object CloseEvent]。”

我知道它与最后一行有关,因为我可以成功地连接到我的其他google帐户,而这些帐户不执行该操作

为什么会这样?执行最后一行的google帐户似乎无法再连接到运行时

编辑:

一天晚上,我可以在会话到期后重新连接google帐户。我刚刚在评论中尝试了这种方法,发现Pytorch模型只需
files.upload()
就会导致问题。上传完成后,Colab将断开连接

(在阅读您的更新之前,我写了这个答案。我想这可能会有所帮助。)

files.upload()
仅用于上传文件。我们没有理由期望它返回一些
pytorch类型/型号

当您调用
a=files.upload()
时,
a
是一个文件名字典-一个大字节数组

{'my_image.png': b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR....' }
type(a['my_image.png'])
就像打开('my_image','b')时一样。read()


因此,我认为下一行
best_model[filename]
尝试打印整个大字节数组,这会使colab出错。

尝试禁用广告拦截器。为我工作

您可以尝试使用
文件。上载
将文件写入磁盘,然后使用适当的方法(pickle、torch.load等)加载文件?只是:
files.upload();pickle.load(…)
谢谢,如果问题确实是最后一行,我认为这是一个很好的选择。但是,我刚刚发现
files.upload()
Pytorch型号可以断开笔记本电脑的连接。请看我的编辑。谢谢,我想你是对的,打印大字节数组是问题的原因。我必须做
best\u model=files.upload()
,而不仅仅是
files.upload()
,以避免打印,并将
best\u model[filename]
替换为
best\u model=torch.load(filename)
。现在我可以导入保存的模型:),并确保chrome没有要求您重新验证。或者只是确保您在使用的任何浏览器中都经过身份验证