Google Colab:从本地上传 Pytorch 模型后“无法连接到运行时”
Posted
技术标签:
【中文标题】Google Colab:从本地上传 Pytorch 模型后“无法连接到运行时”【英文标题】:Google Colab: "Unable to connect to the runtime" after uploading Pytorch model from local 【发布时间】:2018-11-13 11:20:25 【问题描述】:我正在使用一种简单(不一定有效)的方法来保存 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
(失败,左下角显示“无法连接到运行时”消息)-> @ 987654325@。同时,执行任何一个单元格都会给出错误消息“无法执行单元格,无法将执行消息发送到运行时:[object CloseEvent]”
我知道这与最后一行有关,因为我可以成功连接到我的其他不执行该操作的谷歌帐户。
为什么会这样?执行完最后一行的 google 帐户似乎无法再连接到运行时。
编辑:
一晚后,我可以在会话到期后重新连接谷歌帐户。我刚刚尝试了评论中的方法,发现只有files.upload()
Pytorch 模型会导致问题。上传完成后,Colab 将断开连接。
【问题讨论】:
您可以尝试使用files.upload
将文件写入磁盘,然后使用适当的方法(pickle、torch.load、...)加载它?只是:files.upload(); pickle.load(....)
谢谢,如果问题确实是最后一行,我认为这是一个不错的选择。但是,我刚刚发现files.upload()
Pytorch 模型可以断开笔记本。请查看我的编辑。
【参考方案1】:
尝试禁用您的广告拦截器。为我工作
【讨论】:
并确保 chrome 没有要求您重新进行身份验证。或者只是确保您在使用的任何浏览器中都经过身份验证【参考方案2】:(我在阅读您的更新之前写了这个答案。认为它可能会有所帮助。)
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 出了问题。
【讨论】:
谢谢,我想你是对的,打印大字节数组是问题的原因。我必须使用best_model = files.upload()
而不仅仅是files.upload()
以避免打印,并将best_model[filename]
替换为best_model = torch.load(filename)
。现在我可以导入保存的模型了 :)以上是关于Google Colab:从本地上传 Pytorch 模型后“无法连接到运行时”的主要内容,如果未能解决你的问题,请参考以下文章
Colab / Google Cloud SDK - 本地运行时总是“忙” - 无法重新启动