25

我在一些代码示例中看到,人们使用 .pwf 作为模型文件保存格式。但在 PyTorch 文档中,推荐使用 .pt 和 .pth。我使用 .pwf 并在小型 1->16->16 卷积网络上运行良好。

我的问题是这些格式有什么区别?为什么在 PyTorch 文档中甚至不推荐 .pwf 扩展名,为什么人们仍然使用它?

4

3 回答 3

44

列出的扩展名之间没有区别:.pt, .pth, .pwf. 可以使用他想要的任何扩展名。因此,如果您torch.save()用于保存模型,那么它默认使用 python pickle ( pickle_module=pickle) 来保存对象和一些元数据。因此,您可以自由选择所需的扩展,只要它不会与任何其他标准化扩展发生冲突。

话虽如此,但建议在检查点模型时使用.pth扩展,因为它与Python 路径 ( .pth) 配置文件冲突。因此,我自己使用.pth.taror.pt但不是.pth,或任何其他扩展。


PyTorch 中检查点模型的标准方法尚未最终确定。在撰写本文时,这是一个未解决的问题:为模型推荐不同的文件扩展名(.PTH 是 Python 的特殊扩展名)-issues/14864

@sumith建议使用:

  • .pt用于pickle格式的检查点模型
  • .ptc用于在 pytorch 中编译的检查点模型(用于 JIT)
于 2019-11-29T07:20:10.870 回答
6

文件扩展名不会更改已保存文件中的任何内容。推荐的扩展只是为了让大家认识到它实际上是从 pytorch 保存的模型。但是,pytorch 实际上使用了 python 内置的 pickle 模块(https://docs.python.org/2/library/pickle.html

于 2019-11-28T20:40:22.597 回答
4

只是为了扩展@Paul的答案,建议使用.pt扩展,因为.pthPython 本身使用扩展名site-packages和模块路径指向(有关更多信息和适当的 Python 文档,请参阅此答案)。

于 2019-11-29T03:10:01.057 回答