Pi式Jetracer Pro 奮闘記 続編‐2
学習データも採取しなおし学習処理もできました。
色々ありましたが、学習できなかった原因も判り、それを治したところまで以前の記事に書きました。
その後、学習データを取り直し、気持ちも新たに学習処理を行いました。
結果は、無事に学習することができました。
学習結果はコチラ。
学習開始
モデル作成完
epoch No.1
epoch NO.53(最終)
無事に学習終了です。
さて、それでは自動運転させてみましょう。
えっ? 何故エラーが出るの?
またまた落とし穴です。
学習した結果であるモデルのデータをPi式Jetracer Proにコピーし、下の記事にある内容に従って自動運転を動かそうとしました。
すると以下のようなエラーが発生しました。
AttributeError: 'str' object has no attribute 'decode'
何故だ?と思いながら色々調べた結果、下の記事にあるようなチョット安易な手段で対応して治りました。
良かった、と思ったら別のエラーが発生しました。
それがコチラ。
ValueError: ('Unrecognized keyword arguments:', dict_keys(['ragged']))
どうもこれは、学習するときに使ったtensorflowと自動運転で使っているtensorflowのバージョンが違うことが原因のようです。
そんなバカな。
どちらにも指示通りにtensorflow1.13.1を入れている。
インストールするときにエラーが発生することなく無事に終わっている。
そう思って念のために調べてみると、
Pi式Jetracer Proのtensorflowのバージョンは予定通り1.13.1
ところが学習を行ったホストPCのtensorflowのバージョンは2.2.0
あれ?違う。
何故?
それでは、ということでホストPCのtensorflowをアンインストールして再度インストールしなおしました。
アンインストールしようとすると上手くいかず、おまじないのようですが、一旦、仮想環境をdeactivateし再度activateしてアンインストールすることで対応できました。
さて、それではインストールしましょう。
conda install tensorflow==1.13.1
間違いなく1.13.1が入るはずです。
処理は順調に進みインストールは終わりました。
さてバージョンはどうなっているかな、と調べたところ、今度は1.13.1が入っていました。
どうも仮想環境外にtensorflow2.2.0がインストールされており、仮想環境にtensorflow1.13.1をインストールする際に何らかのことが起きて結局、仮想環境においても2.2.0になってしまっていたようです。
今回は確実に1.13.1にすることができました。
でも問題です。
tensorflowのバージョンを変えたので再度学習しなおし、結果をPi式Jetracer Proに入れました。
今度は自動運転できるはずです。
ところがまたエラーです。
どうもtensorflow1.13.1を使ってはいけないようです。
長々と書いてきましたが、結局のところ、Pi式Jetracer proもホストPCもtensorflow2.2.0に入れなおして学習しなおしました。
qengineering.eu
そうすることでやっと自動運転が動き出しました。
思うに、沢山のパッケージが関係しており、そのパッケージのバージョンの組み合わせの問題が原因ではないかと思っています。
tensorflow1.13.1というバージョンが古すぎてコンフリクトが起きたのではないかと思います。
tensorflow1.13.1が動くように他のパッケージのバージョンを調整すれば良いのでしょうが、1.13.1に拘ることもないのだとうろ思い、今回は、tensorflow2.2.0を使うことにしました。
一難去ってまた一難
下の写真にある走行路の左側のレーンにPi式Jetracer Proを置いて走行開始!
すると、自動運転によってPi式Jetracer Proは動いたのですが、走行路を突っ切って行ってしまい正面の壁に激突してしまいました。
何度やっても同じ結果です。
さて、それでは原因を調べることとしましょう。
ゴールは間近であると信じて頑張ります!
今日はここまで。
では、また。