1 项目场景
调试PyTorch
代码保存训练模型的时候有些时候保存的格式是 .pt
,有些时候是.pth
与.pkl
,不禁好奇它们之间的区别。
2 问题描述
我们经常会看到后缀名为.pt
,.pth
,.pkl
的PyTorch
模型文件,这几种模型文件在格式上有什么区别吗?
3 原因分析
它们并不存在格式上的区别,只是后缀名不同而已。在用torch.save()
函数保存模型文件的时候,有些人喜欢用.pt
后缀,有些人喜欢用.pth
或 .pkl
,用相同的 torch.save()
语句保存出来的模型文件没有什么不同。
在PyTorch
官方的文档里,有用.pt
的,也有用.pth
的。
据某些文章的说法,一般惯例是使用 .pth
,但是官方文档里貌似.pt
居多,而且官方也不是很在意固定地用某一种。
另外,为什么会有 .pkl
这种后缀名呢?因为Python
有一个序列化模块 - pickle
,使用它保存模型时,通常会起一个以 .pkl
为后缀名的文件。torch.save()
正是使用pickle
来保存模型的。
参考:https://www.codelast.com/