Skip to main content

pth2onnx: Convert PyTorch model to Onnx model.

Project description

Convert PyTorch model to Onnx model

PyTorchで作成した重みファイルをONNX形式の重みファイルに変換するCLIアプリケーションです。

サポートしているAIタスクは以下のとおりです。

  • Image Classification
  • Object Detection

動作確認OS

  • Windows 10 Pro
  • Windows 11 Pro

インストール方法

pip install pth2onnx

pth2onnxの実行方法

YOLOXモードの場合

# githubからソースをダウンロードし、YOLOXフォルダ内に.venvを生成しインストールする
pth2onnx -m yolox -c install -f

# 学習済みモデルのダウンロード先URLを表示
pth2onnx -m yolox -c zoo -f
# see: https://github.com/Megvii-BaseDetection/YOLOX/#benchmark

# pytorchの重みファイルでデモを実行
pth2onnx -m yolox -c demo -f --yolox_model_name <モデル名> --yolox_weight_file <pytorchモデルファイルのパス> --yolox_output_preview
# モデル名は「yolox_nano」「yolox_tiny」「yolox_s」「yolox_m」「yolox_l」「yolox_x」など
# pytorchモデルファイルのパスはYOLOXフォルダ内のパス。「models/yolox_tiny.pth」など

# pytorchの重みファイルをONNXの重みファイルに変換
pth2onnx -m yolox -c convert -f --yolox_model_name <モデル名> --yolox_weight_file <pytorchモデルファイルのパス> --yolox_onnx_file <ONNXモデルファイルのパス>
# ONNXモデルファイルのパスはYOLOXフォルダ内のパス。「models/yolox_tiny.onnx」など

# ONNXの重みファイルで推論を実行
pth2onnx -m yolox -c inference -f --yolox_onnx_file <ONNXモデルファイルのパス> --yolox_model_img_size <モデルのINPUTサイズ> --yolox_output_preview
# モデルのINPUTサイズは「416」など

その他便利なオプション

コマンドラインオプションが多いので、それを保存して再利用できるようにする

# 通常のコマンドに「-u」と「-s」オプションを追加する
pth2onnx -u <オプションを保存するファイル> -s

# 次から使用するときは「-u」を使用する
pth2onnx -u <オプションを保存するファイル>

コマンドの実行結果を見やすくする。

# 通常のコマンドに「-f」オプションを追加する
pth2onnx -f

# 「-f」オプションを外せば、結果はjson形式で取得できる
pth2onnx 

コマンドラインオプションのヘルプ。

pth2onnx -h

pth2onnxコマンドについて

python -m pth2onnxの省略形です。 実体はscriptsディレクトリ内にあります。

データの保存場所

pathlib.Path(HOME_DIR) / '.pth2onnx'

動作確認したモデル

AI Task base Model
Object Detection YOLOX YOLOX-Nano
Object Detection YOLOX YOLOX-Tiny
Object Detection YOLOX YOLOX-s
Object Detection YOLOX YOLOX-m
Object Detection YOLOX YOLOX-l
Object Detection YOLOX YOLOX-x

開発環境構築

git clone https://github.com/hamacom2004jp/pth2onnx.git
cd pth2onnx
python -m venv .venv
.venv\Scripts\activate
python.exe -m pip install --upgrade pip
pip install -r requirements.txt
deactivate

pyplにアップするための準備

python setup.py sdist
python setup.py bdist_wheel
[distutils]
index-servers =
  pypi
  testpypi

[pypi]
repository: https://upload.pypi.org/legacy/
username: __token__
password: 本番環境のAPIトークン

[testpypi]
repository: https://test.pypi.org/legacy/
username: __token__
password: テスト環境のAPIトークン
  • テスト環境にアップロード .pyplrcを作っていない場合はコマンド実行時にusernameとpasswordを要求される 成功するとURLが返ってくる。
twine upload --repository testpypi dist/*
  • pipコマンドのテスト
pip install -i https://test.pypi.org/simple/ pth2onnx
  • 本番環境にアップロード
twine upload --repository pypi dist/*

Lisence

This project is licensed under the MIT License, see the LICENSE.txt file for details

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pth2onnx-0.0.3.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

pth2onnx-0.0.3-py3-none-any.whl (13.6 kB view details)

Uploaded Python 3

File details

Details for the file pth2onnx-0.0.3.tar.gz.

File metadata

  • Download URL: pth2onnx-0.0.3.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for pth2onnx-0.0.3.tar.gz
Algorithm Hash digest
SHA256 4d1661288310faab397c63873e16a63bf0e758cd275ee10bee02348de4b4cbac
MD5 7ef4a89c03334f254e74728241e73fcd
BLAKE2b-256 15fd9358ec2d407480ac950ad31cfc71cc8c721a7d8d6753afc40f323d2d66d1

See more details on using hashes here.

File details

Details for the file pth2onnx-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: pth2onnx-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 13.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for pth2onnx-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 87531018beae9d30c7d43633c32502c524ac4e57efe784e2d23c5fd1355e7a88
MD5 bce05183dfc2cf6b603b4eb7417a23d6
BLAKE2b-256 5d06c01713ea809dd9c374ef43bdbbf7558ac1d48606b437113c213c8ba2012d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page