【TensorFlow】TensorFlow ~ 自作データでの画像分類 / 準備編 ~

 ■ 今回、学ぶこと

[1] CIFAR-10を使った機械学習
[2] TensorBoardの起動

 ■ TensorFlow での機械学習 / 画像分類の流れ

[1] 学習用データを集める(ついでに評価用のデータも)
[2] 学習する
[3] 評価する

 ■ チュートリアルを動かしてみる

 ファーストステップとして、
CIFAR-10 (サイファー・テン) というデータセットを使って
機械学習の感じを掴む。

 前提条件

 * Anaconda / TensorFlow の環境は、構築されていること
 * 構築されていない場合、以下の関連記事を参考に構築する

 実行手順

【1】 実行準備(ファイルのダウンロード)
【2】 チュートリアル実行
【3】TensorBoard でモデルを確認
【4】学習をしたモデルを使って評価用データを判定

【1】 実行準備

[1-1] 以下のサイトから、#1~#4のファイルをダウンロードし、
    同じ階層に配置する(今回は「C:\cifar10」。以下の[配置例]を参照)

https://github.com/tensorflow/models/tree/master/tutorials/image/cifar10

[配置例] C:\cifar10 + cifar10_input.py + cifar10_train.py + cifar10_eval.py 

【任意設定】

[1-2] 「cifar10_train.py」をテキストエディタで開き、
    以下「■ 修正後」を修正 # これをやらないと、学習がずっとやってる... 修正してもデータ数を減らしても長いし... 
~~~~~~
 ■ 修正前
tf.app.flags.DEFINE_integer('max_steps', 1000000, """Number of batches to run.""") 
■ 修正後
 tf.app.flags.DEFINE_integer('max_steps', 2000, """Number of batches to run.""") ~~~~~~
# ファイル名 説明 備考
1 cifar10_input.py CIFAR-10のバイナリファイル読込
2 cifar10.py CIFAR-10のモデル構築
3 cifar10_train.py CIFAR-10のモデルを訓練
4 cifar10_eval.py CIFAR-10のモデルを評価

【2】 チュートリアル実行

[2-1] Anacondaを立ち上げて、[Enviroments]→「Application on」で「tensorflow」の「▶」アイコン→
   「Open Terminal」を選択し、コマンドプロンプトを開く
[2-2] [1]のファイルを保存した階層まで移動し、「cifar10_train.py」を実行し、学習させる
~~~~~~
cd C:\cifar10
python cifar10_train.py
~~~~~~

【3】TensorBoard でモデルを確認

[3-1] 以下を実行し、TensorBoardを起動する(Ctrl + C で、終了)
~~~~~~
tensorboard --logdir=C:\tmp\cifar10_train
~~~~~~

[3-2] ブラウザを起動し、「http://【コンピュータ名】:6006」にアクセスする
補足:「port:6006」を変更したい場合 
 => TensorBoard起動時に「--port=【変更したいポート番号】」を指定する
~~~~~~
tensorboard --logdir=C:\tmp\cifar10_train --port=16006
~~~~~~

【4】学習をしたモデルを使って評価用データを判定

[4-1] 以下を実行し、学習をしたモデルを使って評価用の画像を判定
~~~~~~
python cifar10_eval.py
~~~~~~

 参考文献

 チュートリアル
http://ayihis.hatenablog.com/entry/2016/08/02/162356
https://qiita.com/KojiOhki/items/e218f36840df10ae358d
https://pythondatascience.plavox.info/tensorflow%E3%81%A7%E3%83%87%E3%82%A3%E3%83%BC%E3%83%97%E3%83%A9%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0/tensorflow%E3%81%A7%E7%94%BB%E5%83%8F%E8%AA%8D%E8%AD%98
 TensorBoard
http://ensekitt.hatenablog.com/entry/2018/01/28/200000
https://qiita.com/dora-gt/items/18440bea7aa0fc8aa17f
https://deepage.net/tensorflow/2017/04/25/tensorboard.html
 画像認識
https://medium.com/0xc0ffee/tensorflow-%E3%81%A7%E9%A3%AF%E7%94%BB%E5%83%8F%E3%82%92%E5%88%A4%E5%88%A5%E3%81%99%E3%82%8B-b6f6b4ecabbe
https://resovaca.com/resort-programming/deeplearning/
 顔認証
http://ceblog.mediba.jp/post/148732090077/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%81%A7%E8%8A%B8%E8%83%BD%E4%BA%BA%E3%81%AE%E9%A1%94%E3%82%92%E5%88%86%E9%A1%9E%E3%81%97%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86
http://kivantium.hateblo.jp/entry/2015/11/18/233834
https://qiita.com/kenmaz/items/4b60ea00b159b3e00100
 自作データでの画像分類
https://qiita.com/FukuharaYohei/items/fae6896e041235033454
https://qiita.com/mine820/items/f33bd93ed1b9f79a11e5
https://qiita.com/kimkim42/items/0790786bf1bd39e32af3
https://qiita.com/AkiyoshiOkano/items/72f3e4ba9caf514460ee

 関連記事

TensorFlow ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2018/02/16/103500
TensorFlow ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/07/01/222125
TensorFlow ~ 環境構築 / Windows 編 ~
https://dk521123.hatenablog.com/entry/2018/02/17/102927