Onnxモデルで自分のディレクトリ情報を入れないようにする方法【PyTorch】
2022-10-21 2022-10-27
PyTorchを使って、PyTorchで作成したモデルファイルをtorch.onnx.export()
を使用してonnx形式に変換していました。
変換した後に、そのonnxファイルをnetronで中のネットワーク構造を見ていると、レイヤーのnode properties
のdescription
部分に、自分のディレクトリー情報がに入っているのを見つけました。
PyTorchのバージョンは1.12.1
を使っていました。
自分のディレクトリー情報が入るのは嫌な感じなので、入らない方法を調べました。
調べた結果、ドキュメントに書いてありました。
torch.onnx.export()
の引数でverbose=True
にしていたことで
自分のディレクトリ情報がonnxファイルに記入されていました。
引数でverbose=False
に設定することで自分のディレクトリ情報が記入されなくなりました。
# 自分のディレクトリ情報がmodel.onnxに記入される
torch.onnx.export(model, dummy_input, "model.onnx", verbose=True)
# 記入されない
torch.onnx.export(model, dummy_input, "model.onnx", verbose=False)
実際に下側のverbose=False
の設定でonnxに変換したものをnetronで見てみると、
下の画像のようになっていてdescription
が消えていてディレクトリの情報などがなくなりました。
verbose
の機能を勘違いしていたようです。
verbose=True
にすれば、下のように実行したときに人間がわかりやすい形式で構造を
表示をしてくれるのだとばかり思っていました。
実際ドキュメントを見てみると下のように書かれていて、特に
In addition, the final ONNX graph will include the field doc_string
from the exported model which mentions the source code locations for model.`
とあり、人間の読みやすい形式で出力されるのに加えて、出力されるモデルにモデルのソースコードの場所が含まれると書かれていました。
verbose (bool, default False) – if True, prints a description of the model being exported to stdout. In addition, the final ONNX graph will include the field doc_string` from the exported model which mentions the source code locations for model. If True, ONNX exporter logging will be turned on.
ドキュメントはしっかり読まないとダメですね。