pytorchをonnx形式に変換します。
def Torch2Onnx(model、input_size、output_name、istrained = True):
'' '
:param:モデル
:param:input_size .et(244,244)
:param:output_name .et "test_output"
:param:トレーニング済みモデルを変換するかどうか。デフォルト:True
'' '
x = Variable(torch.randn(1,3、input_size [0]、input_size [1]))。cuda()
訓練されている場合:
torch_out = torch.onnx.export(model、x、output_name、verbose = True)
そうしないと:
torch_out = torch.onnx.export(model、x、output_name、export_params = False、verbose = True)#トレーニングされていないモデルのみをエクスポートします。
使用例:
モデル=モデル()
model.load_state_dict(torch.load(weight_path))
device = torch.device( "cuda" if torch.cuda.is_available()else "cpu")
モデル= model.to(デバイス)
input_size =(384,288)
Torch2Onnx(model、input_size、 "test.onnx")
モデルのパラメータを取得します。
注意:異なるメソッドのデフォルトモデルは、CPUまたはcudaで異なります。RuntimeErrorと同様のエラーがある場合:入力タイプ(torch.FloatTensor)と重みタイプ(torch.cuda.FloatTensor)は同じである必要があります。重量がcudaにあるべきかどうかを確認してください。
方法1:トーチサマリーを使用する
pipを使用してtorchsummaryをインストールします。
pipインストールトーチサマリー
コードセグメント:
torchsummaryからインポートの概要
モデル=モデル()
model.load_state_dict(torch.load(weight_path))
device = torch.device( "cuda" if torch.cuda.is_available()else "cpu")
モデル= model.to(デバイス)
要約(モデル、(3,384,288))
大連女性病院https://m.120ask.com/zhenshi/dlfk/でどちらが良いですか
方法2:トーチスタットを使用する
pipを使用してtorchstatをインストールします。
pip install torchstat
コードスニペット(要約と同様)
torchsummaryからインポートの概要
モデル=モデル()
model.load_state_dict(torch.load(weight_path))
device = torch.device( "cuda" if torch.cuda.is_available()else "cpu")
状態(モデル、(3,384,288))
方法3:thopを使用する(非推奨)
pipを使用してthopをインストールします。
pip install thop
コードセグメント:
thopインポートプロファイルから、clever_format
モデル=モデル()
model.load_state_dict(torch.load(weight_path))
device = torch.device( "cuda" if torch.cuda.is_available()else "cpu")
フロップ、params = profile(model、inputs =())
flops、params = clever_format(flops、params、 "%。3f")