在 PyTorch 中加载 Torch7 训练模型 (.t7)

Loading Torch7 trained models (.t7) in PyTorch

我正在使用 Torch7 库来实现神经网络。大多数情况下,我依赖预训练模型。在 Lua 中,我使用 torch.load 函数加载保存为 torch .t7 文件的模型。我很好奇切换到 PyTorch( http://pytorch.org) and I read the documents. I couldn't find any information regarding the mechanisms to load a pre-trained model. The only relevant information I was able to find is this page:http://pytorch.org/docs/torch.html

但是页面中描述的函数torch.load似乎加载了一个用pickle保存的文件。如果有人有关于在 PyTorch 中加载 .t7 模型的其他信息,请在此处分享。

正确的函数是load_lua:

from torch.utils.serialization import load_lua

x = load_lua('x.t7')

从 PyTorch 1.0 开始 torch.utils.serialization 已完全删除。因此,没有人可以再将模型从 Lua Torch 导入 PyTorch。相反,我建议在 conda 环境中通过 pip 安装 PyTorch 0.4.1(这样你可以在此之后删除它)并使用 this repo 转换你的 Lua Torch模型到 PyTorch 模型,而不仅仅是不能用于训练的 torch.nn.legacy 模型。然后使用 PyTorch 1.xx 来做任何事情。您还可以通过这种方式在 PyTorch 中训练转换后的 Lua Torch 模型 :)