皆さんこんにちは菊池です
今回はdigitsの二回目で
実際に学習をしてみましたという記事です
テストデータなのですがMNISTという有名な手書き文字のデータセットを使います。
自分でデータセットを作るのはめんどくさいしね
ちなみにこのチュートリアルはgithubに同じものが載っています
この記事では
dockerでdigitsを立ち上げているという前提で話を進めています
docker run --name digits -p "5000:5000" -v ./images/:/mnt/volumes/images kaixhin/digits
はじめに手書きのデータをダウンロード
docker exec -it <コンテナ名> /root/digits/tools/download_data/main.py mnist /mnt/volumes/images
labels.txtの中身
0
1
2
3
4
5
6
7
8
9
train.txtの中身
/root/mnist/train/0/14749.png 0
/root/mnist/train/0/51889.png 0
/root/mnist/train/0/00997.png 0
/root/mnist/train/0/16585.png 0
/root/mnist/train/0/59099.png 0
/root/mnist/train/0/04855.png 0
/root/mnist/train/0/56639.png 0
/root/mnist/train/0/11340.png 0
/root/mnist/train/0/36260.png 0
…
/root/mnist/train/9/38674.png 9
/root/mnist/train/9/16422.png 9
/root/mnist/train/9/46148.png 9
/root/mnist/train/9/13247.png 9
/root/mnist/train/9/35245.png 9
/root/mnist/train/9/47974.png 9
/root/mnist/train/9/25258.png 9
/root/mnist/train/9/11150.png 9
/root/mnist/train/9/07194.png 9
/root/mnist/train/9/23555.png 9
/root/mnist/train/9/35080.png 9
/root/mnist/train/9/54026.png 9
/root/mnist/train/9/36629.png 9
/root/mnist/train/9/24911.png 9
/root/mnist/train/9/18777.png 9
ブラウザでlocalhost:5000にアクセスすると下のような画面になります.

ログインします。適当なユーザ名を入れちゃってください

そうしたら、今回は手書き文字の分類をやるので
New Dateset>Classificationを選択します。
Training ImagesにダウンロードしたMNISTのtrain.txtやlabels.txt、画像データが入っているtrainディレクトリを設定します。
それからImage sizeは28×28です

Dataset Nameを設定して(適当に)createをおせばデータセットの作成が始まります。
ブラウザの更新を押すと下のような画面になって作成が終わったことがわかります。

次に、HOMEに戻って

New Model>Classificationを選択します。

SelectDatasetの項目で先ほど作成したDatasetを選択して

下の方にあるStandard NetworksのLeNetを選択し、Model Nameを適当につけてCreateです。

すると学習が始まります。ブラウザの更新をおせば進行状況をリアルタイムで確認することができます。

終了予想時間1h31m ・・・結構かかりますね。GPU積んでないので仕方ないです。

あとは待ってるだけです。シャドウバースでもやっててください
ちなみに学習の途中でもテストをすることができます。
画像のURLを貼ってあげるだけでテストできるのでとても便利ですね!


あとはモデルデータを落として、pythonとかでコードを書いてどんどん手書き文字を識別すればいいんですね
あれちょっとまって・・・
画像用意して・・
curl localhost:5000/models/images/classification/classify_one.json -XPOST -F job_id=20160710-053500-0a2e -F image_file=@./Desktop/4.jpg
{
"predictions": [
[
"4",
85.8
],
[
"0",
7.39
],
[
"8",
1.87
],
[
"7",
1.83
],
[
"1",
1.8
]
]
}
postで画像投げたら、jsonで返ってくるじゃん、すげえ!!
これで機械学習も使えるようになりました!ぜひ活用してみてくださいね!