Pytorch は、異なるファイル形式 pkl および pth of net を保存および抽出します

ディープ ラーニング モデルをトレーニングするプロセスでは、トレーニング済みのディープ ラーニング モデルを保存するか、他のユーザーがトレーニングしたモデルを便利にロードして、トレーニング時間を節約し、効率的な問題解決を実現することをお勧めします。

モデルファイルが必要な理由

  • 深層学習には、Transformer モデル、Bert モデルなど、多くのモデル パラメーターがあります。
  • 通常、トレーニング データ セットは非常に大きく、たとえば 1000G 以上です。
  • ローカルコンピュータの計算能力や実験室のサーバーの計算能力が基本的に不十分な場合、モデルのトレーニングに長い時間がかかり、モデルが短い場合、トレーニングは数日、または停止することさえできません。メモリが不足している可能性があります。現時点では、直接使用して微調整できる同様のトレーニング済みモデルがあれば非常に良いです。

torch.save() は、ネットワーク構造とモデル パラメーターを保存します。

  • 1 つは、ニューラル ネットワーク全体の構造情報とモデル パラメーター情報を保存することであり、保存の対象はネットワーク モデル全体です。
  • 2 つ目は、ニューラル ネットワークのトレーニング モデルのパラメーターのみを保存することで、保存の対象は net.state_dict() です。

net1 という名前のトレーニング済みモデルがあるとします。

torch.save(net1,7-net.pth’) # 保存整个神经网络的结构和模型参数

torch.save(net1,7-net.pkl’) # 同上

torch.save(net1.state_dict(),7-net_params.pth’) # 只保存神经网络的模型参数

torch.save(net1.state_dict(),7-net_params.pkl’) # 同上

If the torch.save method is used to save the model parameters, the suffix of the saved file has no effect, and the result is the same. 多くの .pkl ファイルも torch.save で保存されますが、これは torch.save とまったく同じです.pth ファイル。

  • ただし、アプリケーションのシナリオがここにない場合、.pkl ファイルは python でファイルを保存するための形式であり、直接開くと一連のシリアル化されたものが表示されます。これらは実際にはバイナリ形式で保存されており、これらのファイルを読みたい場合は、「r」モードではなく「rb」モードを使用する必要があります。

  • .pth ファイルにはさまざまな用途があります. Python が既知のライブラリ ファイル ディレクトリをトラバースするとき、.pth ファイルを検出すると、ファイルに記録されているパスを sys.path 設定に追加するため、.pth ファイルで指定されたライブラリPython ランタイム環境でも見つけることができます。

しかし、実際には、pkl ファイルでも pth ファイルでも、すべてバイナリ形式で格納されているため、本質的な違いはなく、pickle ライブラリを使用して pkl ファイルまたは pth ファイルを読み込めば、結果は同じになります。

モデル ファイルのサフィックス

  • .pt: この接尾辞は、公式文書でよく使用されます。
  • .pth: この接尾辞は、慣習として一般的に誰もが使用します。
  • .pkl: このサフィックスは、Python にシリアル化モジュール pickle があり、それを使用してモデルを保存する場合、通常はサフィックス .pkl でファイルを開始するためです。

おすすめ

転載: blog.csdn.net/weixin_45277161/article/details/128949571