LoginSignup
0
0

More than 3 years have passed since last update.

ONNXがサポートしている最適化一覧を取得

Last updated at Posted at 2019-09-25

ONNXには最適化の機能も含まれています。

このプログラムを実行すると、サポートしている最適化の一覧を表示できます。

from onnx import optimizer

all_passes = optimizer.get_available_passes()
print("Available optimization passes:")
for p in all_passes:
    print(p)
print()

順番に実行してみたい。

Available optimization passes:
eliminate_deadend
eliminate_identity
eliminate_nop_dropout
eliminate_nop_monotone_argmax
eliminate_nop_pad
eliminate_nop_transpose
eliminate_unused_initializer
extract_constant_to_initializer
fuse_add_bias_into_conv
fuse_bn_into_conv
fuse_consecutive_concats
fuse_consecutive_log_softmax
fuse_consecutive_reduce_unsqueeze
fuse_consecutive_squeezes
fuse_consecutive_transposes
fuse_matmul_add_bias_into_gemm
fuse_pad_into_conv
fuse_transpose_into_gemm
lift_lexical_references
nop
split_init
split_predict

onnxのバージョン

実行したONNXのバージョンです。バージョン上がれば内容も変わりそうです。

>>> import onnx
>>> onnx.__version__
'1.5.0'

1.5.0ですね。1

実際に最適化を試してみた 2 3


  1. 途中から1.6に上げたが、最初からやり直す気力が無い 

  2. lift_lexical_referencesは試すところまでもっていけず。Python APIのもう一つ下のレイヤーだと思う。 

  3. nopは意味のないOPを削除するのではなく、最適化自体を何もしない。 

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0