PyTorch中的.pt,.pth和.pwf扩展之间有什么区别?

时间:2019-11-28 20:33:37

标签: python serialization deep-learning pytorch checkpointing

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

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

3 个答案:

答案 0 :(得分:3)

文件扩展名不会更改保存的文件中的任何内容。推荐的扩展仅用于使每个人都知道它实际上是从pytorch保存的模型。但是,pytorch实际上使用python内置的pickle模块(https://docs.python.org/2/library/pickle.html

答案 1 :(得分:2)

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

但是说过,在检查点模型时它是not recommended to use .pth extension,因为它与Python path (.pth) configuration files冲突。因此,我本人使用.pth.tar.pt而不是.pth或任何其他扩展名。


PyTorch中的模型检查点的标准方法尚未最终确定。截至撰写本文时,这是一个未解决的问题:Recommend a different file extension for models (.PTH is a special extension for Python) - issues/14864

使用suggested by @soumith

  • .pt用于以泡菜格式检查点模型
  • .ptc用于在pytorch中为JIT编译的检查点模型(用于JIT)

答案 2 :(得分:1)

只需扩展@Paul答案,建议使用uid扩展名,因为Python本身将test1用于.pt和模块路径指向(请参阅{{ 3}},以获取更多信息和适当的Python文档。