在非 GPU 机器上使用 pickle 加载 .txt 文件

Posted

技术标签:

【中文标题】在非 GPU 机器上使用 pickle 加载 .txt 文件【英文标题】:Load .txt file with pickle on non GPU machine 【发布时间】:2019-01-13 05:07:48 【问题描述】:

我正在尝试在 GPU 机器上加载 .txt 文件。 .txt 文件被转储到 GPU 机器上:

with open("Data/all_rewards.txt", "wb") as f:
    pickle.dump(all_rewards, f)

该文件仅包含文本数据,没有网络模型或其他任何内容。 在 GPU 机器上,我可以毫无问题地加载数据:

with open("all_rewards.txt", 'rb') as f:
    losses = pickle.load(f)

然而,在 GPU 机器上,我得到了错误:

AssertionError('Torch not compiled with CUDA enabled',)

由于 Torch 也使用 pickle 加载模型,我尝试使用以下方法加载数据:

losses = torch.load("all_rewards.txt", map_location='cpu')

但这没有用。 你能帮我吗?

编辑: 不知何故,这个问题神奇地解决了。我已经重新安装了pickle,它最初并没有解决问题,但现在它可以工作了......

【问题讨论】:

【参考方案1】:

听起来您在非 GPU 机器上安装 pytorch 的方式存在问题。除了pip install torchvision,还需要运行一个命令

如果您前往 https://pytorch.org/ 并选择 CUDA:None 并使用您的操作系统配置,您应该会收到一个额外的 http 链接以下载额外的***包。

例如:Linux、pip 和 Python3.6 导致以下附加命令

pip3 install http://download.pytorch.org/whl/cpu/torch-0.4.1-cp36-cp36m-linux_x86_64.whl

【讨论】:

不幸的是,这并没有为我的问题带来任何解决方案。 Pickle 就是不让我加载数据。没有火炬可以使用泡菜吗?

以上是关于在非 GPU 机器上使用 pickle 加载 .txt 文件的主要内容,如果未能解决你的问题,请参考以下文章

加载模型时没有 GPU 的机器上的 Cuda 驱动程序错误

银行冲突是不是发生在非 GPU 硬件上?

机器学习之保存与加载.pickle模型文件

推荐收藏保存和加载机器学习模型的这两个方法不错

推荐收藏保存和加载机器学习模型的这两个方法不错

使用flask在heroku bert pytorch模型上部署:错误:_pickle.UnpicklingError:无效的加载键,'v'