Armadilloフォーラム

学習モデルのint8形式への変換につきまして

yuki.shigefuji

2023年6月28日 10時49分

お世話になっております。

現在armadilloで利用できるtfliteモデルの作製をしております。
しかし添付ファイルの環境で実行すると過去に出力値が一定になるという質問と同じような状況になってしまっております。
そしてその質問と同じように対処しようとした時、こちらの環境では現在上手くいっておりません。
対処法もしくは解決策をご教授いただければと存じます。
なおからのファイル群には本来jpg方式のファイルがありますが、顔等の個人情報が入っておりますので添付ファイルでは削除しております。

以上、ご確認よろしくお願い致します。

ファイル ファイルの説明
pedet.zip
コメント

なおResnet18で作成したファイルでの変換にもトライしましたが、そちらでも成功しておりません。

> お世話になっております。
>
> 現在armadilloで利用できるtfliteモデルの作製をしております。
> しかし添付ファイルの環境で実行すると過去に出力値が一定になるという質問と同じような状況になってしまっております。
> そしてその質問と同じように対処しようとした時、こちらの環境では現在上手くいっておりません。
> 対処法もしくは解決策をご教授いただければと存じます。
> なおからのファイル群には本来jpg方式のファイルがありますが、顔等の個人情報が入っておりますので添付ファイルでは削除しております。
>
> 以上、ご確認よろしくお願い致します。

yolov5のexport.pyのような変換ファイルは成功していますが画像分類としてトライしている現在の方は手詰まりとなっています。
よろしくお願い致します。

> なおResnet18で作成したファイルでの変換にもトライしましたが、そちらでも成功しておりません。
>
> > お世話になっております。
> >
> > 現在armadilloで利用できるtfliteモデルの作製をしております。
> > しかし添付ファイルの環境で実行すると過去に出力値が一定になるという質問と同じような状況になってしまっております。
> > そしてその質問と同じように対処しようとした時、こちらの環境では現在上手くいっておりません。
> > 対処法もしくは解決策をご教授いただければと存じます。
> > なおからのファイル群には本来jpg方式のファイルがありますが、顔等の個人情報が入っておりますので添付ファイルでは削除しております。
> >
> > 以上、ご確認よろしくお願い致します。

at_akihito.irie

2023年6月28日 16時41分

入江です。

頂いたご質問について内容を精査してから回答いたしますので、少々お待ちください。

こちらでも頂いたファイルを確認しますが、認識違いの無いように送っていただいた
zipファイルの内容物について一応軽くご説明いただけますでしょうか?

よろしくお願いいたします。

承知いたしました。

①create_save_model.py =>画像分類用モデル作成、train validをdatasetから取得 saved_modelで出力

②change_tflite.py => tflite形式へ変換 imageとしてdaiフォルダ内の画像を参照 modelsへ出力

③infer.py(1,2,3)=> 返還後tfliteのAccuracyの確認。対象はfaceフォルダ内の画像、正誤はフォルダ内のout,set内に格納

以上となります。お手数ですがご確認よろしくお願い致します。
> 入江です。
>
> 頂いたご質問について内容を精査してから回答いたしますので、少々お待ちください。
>
> こちらでも頂いたファイルを確認しますが、認識違いの無いように送っていただいた
> zipファイルの内容物について一応軽くご説明いただけますでしょうか?
>
> よろしくお願いいたします。

at_akihito.irie

2023年6月29日 10時13分

入江です。

ご説明ありがとうございます。

一点確認なのですが、tfliteに変換する前のsaved_modelの時点では、期待した出力が
返って来ていましたでしょうか?

ご確認よろしくお願いいたします。

お世話になっております

はい。saved_modelを使用し振り分けを行ったところ9割ほどの正答率で動作しておりました。

以上、ご確認よろしくお願い致します。

> 入江です。
>
> ご説明ありがとうございます。
>
> 一点確認なのですが、tfliteに変換する前のsaved_modelの時点では、期待した出力が
> 返って来ていましたでしょうか?
>
> ご確認よろしくお願いいたします。
>

at_akihito.irie

2023年7月10日 12時45分

入江です。

回答が遅くなってしまい申し訳ございません。

原因の断定には至っておりませんが、頂いたファイル群を見て4点ほど気になったことがありますので
コメントさせていただきます。

* G4でNPUの恩恵を受けたいのであればint8でなくuint8に変換しなければならない

NPUで高速化できるのはuint8で量子化されたモデルのみです。
それ以外はCPUで処理することとなり、低速になりますのでご注意ください。

* 正規化の方法

uint8の話に繋がりますが、int8ならx/127.5 -1で問題なさそうですが、
uint8の場合はx/255.0 になります。

* representative_datasetのsoftmaxの必要性

量子化時に入力するrepresentative_datasetで、入力前にsoftmaxは必要ですか?
推論時には実行していないようです。

* 入力画像の色空間

おそらくKerasで作成したモデルの入力画像の色空間はRGBです。
representative_datasetは、cv2で読み込んでいるためデフォルトBGRですが大丈夫ですか?

大まかに読んだところ以上の箇所が気になりました。

ご確認よろしくお願いいたします。