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 ProWindows 11 Pro
インストール方法
pip install pth2onnx
pth2onnxの実行方法
YOLOXモードの場合
# githubからソースをダウンロードし、YOLOXフォルダ内に.venvを生成しインストールする
pth2onnx -m yolox -c install -f
# Windows環境の場合下記のエラーが出ることがある
# ERROR: Could not install packages due to an OSError: [WinError 206] ファイル名または拡張子が長すぎます。
# これが出たときは「YOLOX/requirements.txt」ファイルの「onnx-simplifier」をコメントアウトして再実行する
# 学習済みモデルのダウンロード先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
-
pyplのユーザー登録【本番】 https://pypi.org/account/register/
-
pyplのユーザー登録【テスト】 https://test.pypi.org/account/register/
-
それぞれ2要素認証とAPIトークンを登録
-
ホームディレクトリに
.pypircを作成
[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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pth2onnx-0.0.4.tar.gz.
File metadata
- Download URL: pth2onnx-0.0.4.tar.gz
- Upload date:
- Size: 14.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef3b7162aeb08a9c4fb557914b3bf697a3849e83c5fc47010adb269f2f960d99
|
|
| MD5 |
666ea2ec87fda09720abd5dd66087356
|
|
| BLAKE2b-256 |
7bc92b48ea64dd44ad28e2aa9618b49bd427899fb666c1be532117461c43365f
|
File details
Details for the file pth2onnx-0.0.4-py3-none-any.whl.
File metadata
- Download URL: pth2onnx-0.0.4-py3-none-any.whl
- Upload date:
- Size: 13.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b44b26e806cce0a432d0f8663c9f32ce023794d2b4a74c1a2868dc7083a93e7
|
|
| MD5 |
0326d54c539aaaa169542cdef6fc249f
|
|
| BLAKE2b-256 |
23a514b88bcd016e49a572232ab2aa194207226825597c772b82895eed6a6d60
|