-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
昔作った.onnxがonnxruntime 1.18でloadできない #27
Comments
Discordでのやり取りメモ 📝
|
可視化してみた感じ、 そのあと その前のSqueezeはここ↓で、次元を指定せずに vv_core_inference/vv_core_inference/make_yukarin_sosoa_forwarder.py Lines 128 to 129 in 5492845
|
onnx 1.16でOPSET 21に変換してみましたが、同じ場所で落ちて、エラーが変わるだけでした。
コード変換コード """
ONNX 1.16に変換するためのスクリプト。
"""
import argparse
import onnx
from onnx import version_converter
parser = argparse.ArgumentParser()
parser.add_argument("input", help="Input ONNX model")
parser.add_argument("output", help="Output ONNX model")
args = parser.parse_args()
OPSET = onnx.defs.onnx_opset_version()
old_model = onnx.load(args.input)
updated_model = version_converter.convert_version(old_model, target_version=OPSET)
onnx.save(updated_model, args.output) スクリプト set -eux
working_dir=working/
rm -rf $working_dir
mkdir -p $working_dir
cp ~/Github/voicevox_core/model/sample.vvm/predict_duration.onnx "$working_dir/duration.onnx"
cp ~/Github/voicevox_core/model/sample.vvm/predict_intonation.onnx "$working_dir/intonation.onnx"
cp ~/Github/voicevox_core/model/sample.vvm/decode.onnx "$working_dir/decode.onnx"
python convert_to_onnx1.16.py \
"$working_dir/decode.onnx" \
"$working_dir/decode.onnx"
python run.py \
--yukarin_s_model_dir "$working_dir" \
--yukarin_sa_model_dir "$working_dir" \
--yukarin_sosoa_model_dir "$working_dir" \
--hifigan_model_dir "$working_dir" \
--method onnx \
--speaker_ids 5 9 |
v13以降のUnsqueezeはaxesを実行時に指定できる(inputに指定できる)ようですね。そのスクショを見た感じv13でもaxesの右に+マークがついているので、結局定数(initializerからinputへの入力)としてほぞんされているかもしれないです。その+をクリックすると展開できます |
@Yosshi999 ありがとうございます!! |
v13に変換すると、Unsqueezeは問題ない?っぽいもの(axesに値が入ってるもの)になる一方、Squeezeがスカラ値っぽくなってました。 ちなみにこれは 正しく読める.onnxの方のSqueezeはこうなってました。 Squeezeのaxes引数?を0にすれば解決する・・・? |
@Yosshi999 またまたになってしまうのですが、onnxモデルの変換で力をお借りできないでしょうか・・・ 🙇 VOICEVOX COREリポジトリにあるonnxファイルを変換し、 decodeにはUnsqueezeが3つありますが、3つとも変換が必要なのか等は現状不明です。 新しいonnxruntimeで使えればその分WebGPUでの速度なども追従されるため、いろいろできる範囲も増えていくと踏んでいます! |
onnx/onnx#6313 |
おおおおありがとうございます!!!!!!! とりあえずこのissueはopenし続けますが、onnxファイルをどうにかしなくても良いかもという方針で動こうと思います!! |
Onnxruntme 1.20.1でもまだ直ってなさそう?:
|
onnx/onnx#6314 ですが、onnx/onnxのリリースにはまだ入ってなさそうです(onnx v1.17.0では見送られたっぽい)。なので
ということになりそうです。 ONNX Runtime自体がonnxに対してパッチしてるので、このパッチに onnx/onnx#6314 の内容をねじ込めばなんとかなるかもしれませんが… |
ローカルでビルドしたところ、動きました!具体的にはこんなパッチを追加しました: ので、 onnx/onnx#6314 が含まれたonnxruntimeのリリースと同時にこのIssueは閉じても良さそう。 |
概要
昔作った.onnxがonnxruntime 1.18でloadできない問題が発生しています。
このままではonnxruntimeの1.18バージョンアップができないので、なんとかしたいところです。
とりあえず知見を集めるべく、issueを作ってみました。
検証方法
onnxruntime-1.18
ブランチを作ってみました。こちらのブランチに移動して
pip install -r requirements.txt
すれば環境が構築できます。(python 3.10環境が必要です)
voicevox_core
内に.onnxがあるので、そちらを持ってきて試すのが手っ取り早いです。~/Github/voicevox_core
にVOICEVOX COREリポジトリのcloneがあるとして、こちらのbashスクリプトで検証できます。実行ログ↓
The text was updated successfully, but these errors were encountered: