PyTorch 中的 .pt、.pth 和 .pwf 扩展名有什么区别?

Asi*_*sil 17 python serialization deep-learning checkpointing pytorch

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

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

kma*_*o23 35

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

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


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

它已经建议通过@soumith使用方法:

  • .pt 用于pickle格式的检查点模型
  • .ptc 用于编译 pytorch 中的检查点模型(用于 JIT)


小智 5

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


Szy*_*zke 5

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