2018年3月3日土曜日

素人がTensorFlowの研修に行った結果(2日目)

素人なSEであるりばーがTensorFlowの研修を受けた体験記2日目です。
1日目はこちら
素人がTensorFlowの研修に行った結果
(1日目)




本題



 データセットを作る 


2日目の研修は実際の機械学習を行なっていく事から始まりました。とはいえ、プログラムはほぼ出来上がっているので、確認しながら実行して行くのが主な作業です。
作る物は画像を読み込み、その画像に何が写っているかを判定するAIです。
その為に予め画像と、それに何が写っているかの説明を付けた情報を与えて学習させます。
最初のステップはその学習の為のデータセットを作る事でした。
作ると言っても画像ファイルを作ったり説明を付けたりする訳ではないです。
画像はjpgファイルとして存在しており、それに対する説明もjsonファイルとして用意してくれています。
後はこの2つのファイルを結びつけTFRecordという形式に変換するコーディングを行いました。

TFRecordとは、…なんでしょうね。
ここら辺、りばーでは全然理解できませんでした。
ただ、分かった事はTFRecordとはTensorFlowRecordの略じゃないか、って事とこの形式を使う事で学習時間が短縮できる、という事でした。笑
変換方法とか全然理解できていないですが、簡単に変換出来るのであればデータセットはTFRecord形式に変換して使いたいですね。


 学習の実行 


データも用意でき、いよいよ学習開始です。
(学習するモデルと呼ばれるオブジェクトは既に用意されていました)
ただソースを実行するだけなのですが、PythonやLinuxに慣れていない自分はそこそこ手こずり、勉強になりました。
また、実行時にバックグラウンドで実行させる方法を教えてもらいました。
Pythonの実行はコンソールから行いますが、コンソールを閉じてしまうと処理は終了してしまいます。
試しに実行する場合はそれで良いのですが、学習の実行となるとかなりの処理時間となります。
そんな時、処理するサーバーのバックグラウンドで実行させるこの方法は非常に便利でした。
 今回の例では1000ステップ処理するのに25分なので、10万ステップだと2500分=42時間ぐらいです。


 ひたすら待つ&TensorBoard 


という訳で実行したらひたすら待つ、という風に講師からも言われました。
おいおい研修で待つのかよ
とか思いましたが、待ってる間に説明があったり、最終的には料理番組よろしく「42時間経った物がこちらです」と学習済みモデルも出してくれました。
後は学習済みモデルを使って、実際に画像を読み込まして「おお」とか言ってました。

その中で学習の状態を確認するツールとしてTensorBoardという物を紹介されました。TensorBoardはTensorFlowの実行ログからグラフを作ってくれたりモデルの構造を表示してくれたりします。(表示用のログを用意する必要があるのかもしれませんが…)
学習した結果の精度もグラフで見れるので一目で確認できます。


 本日分かったこと 


2日目は1日目ほど習うという感覚はなかったです。1日目のサンプルコードはお試し要素が強かったですが、2日目のは結構本物チックで実際に機械学習を行う感覚が体験できた気がしました。そういう意味で習うというより慣れるという感想でした。
後はカリキュラム的に元々余裕があったのか早めに全て終わってしまい、残りの時間は質問タイムになりました。その時間を利用して研修とは直接関係ない所での疑問点・不明点が聞けたのが逆に良かったです。


 総括 


今回2日間教えてもらいましたが、結果として「TensorFlow分かったぜ!明日から試しにやってみよう!」とはなりませんでした。逆にそんなに簡単なものではない事が分かりました。とは言え、”無駄だった”か?と言われるとそういう訳ではなく、何を勉強すれば良いか?何処を調べれば良いか?という部分について理解が進んだと感じています。(無知の知ってやつですかね?)
まだまだ道のりは長そうですが、これから機械学習について素人目線でお伝えできればと思ってます。どこまでいけるか分かりませんが、生暖かくみていてください。

0 件のコメント:

コメントを投稿

Popular Posts