我在一些代码示例中看到,人们使用 .pwf 作为模型文件保存格式。但在 PyTorch 文档中,推荐使用 .pt 和 .pth。我使用 .pwf 并在小型 1->16->16 卷积网络上运行良好。
我的问题是这些格式有什么区别?为什么在 PyTorch 文档中甚至不推荐 .pwf 扩展名,为什么人们仍然使用它?
我在一些代码示例中看到,人们使用 .pwf 作为模型文件保存格式。但在 PyTorch 文档中,推荐使用 .pt 和 .pth。我使用 .pwf 并在小型 1->16->16 卷积网络上运行良好。
我的问题是这些格式有什么区别?为什么在 PyTorch 文档中甚至不推荐 .pwf 扩展名,为什么人们仍然使用它?
列出的扩展名之间没有区别:.pt
, .pth
, .pwf
. 可以使用他想要的任何扩展名。因此,如果您torch.save()
用于保存模型,那么它默认使用 python pickle ( pickle_module=pickle
) 来保存对象和一些元数据。因此,您可以自由选择所需的扩展,只要它不会与任何其他标准化扩展发生冲突。
话虽如此,但不建议在检查点模型时使用.pth
扩展,因为它与Python 路径 ( .pth
) 配置文件冲突。因此,我自己使用.pth.tar
or.pt
但不是.pth
,或任何其他扩展。
PyTorch 中检查点模型的标准方法尚未最终确定。在撰写本文时,这是一个未解决的问题:为模型推荐不同的文件扩展名(.PTH 是 Python 的特殊扩展名)-issues/14864
@sumith建议使用:
.pt
用于pickle格式的检查点模型.ptc
用于在 pytorch 中编译的检查点模型(用于 JIT)文件扩展名不会更改已保存文件中的任何内容。推荐的扩展只是为了让大家认识到它实际上是从 pytorch 保存的模型。但是,pytorch 实际上使用了 python 内置的 pickle 模块(https://docs.python.org/2/library/pickle.html)