Donkey CarのトレーニングをローカルPCでやると
がっつり重くなって他の作業ができなくなるので
Floyd Hubで処理させることにした。
Floyd Hubは、機械学習コードの実行に特化したPaaSで
CPU(Xeon 2コア)は毎月一定時間無料で使用できる。
#無料枠時間は変更されることがあるので明記したくないのだけど
#私が使っていたときは24時間毎月使えていた。
Donkey Carのドキュメントには
AWS SageMakerで実行する方法が
のっているのだけどx1を使う時点で課金環境のようなので却下。
貧乏人はFloyd Hubの無料枠でシコシコ実行だ..
#それかGoogle Colabか
先にdonkeycar、floydhubとfloyd-cliをpip install しておく。
donkey createcar ~/mycar --template donkey2
を実行した後で
Floyd Hubサイトで新規データセット hogehoge を作成し
cd ~/mycar/data
floid login fugafuga
floyd init fugafuga/hogehoge
floyd data upload
を実行して学習コーパス(tubデータ)をサーバへ先にあげておく。
次に Floyd Hubサイト上で新規プロジェクト korekore を作成しておく。
~/mycar/train.sh というファイル名で
というスクリプトを作成する。
そして ~/mycar/.floydignore というファイルを作成し、
とだけ書いて保存する。
そして
cd ~/mycar
floyd init korekore
floyd run --cpu --env tensorflow-1.7 --data fugafuga/datasets/hogehoge/1:/my_data "sh train.sh"
と実行すれば、CPUのみを使ってトレーニングを開始する。
自分の学習コーパスでは
100エポック完了させる前に
Early Exitが働いて1時間ほどで止まってしまう
..ので無料枠で十分学習できる。
ついでにtubデータをローカルPCから削除できるので
(Floyd Hubのデータセットとして保管しているから)
容量としてもスッキリ。
GPUやGPU2にするには --cpu を --gpu や --gpu2 にすれば動きます。
ちなみに以下の画面スナップは、同じ学習コーパスデータセットを使って
GPU/GPU2/CPUの費やした処理時間をあらわしています。
この場合は、GPU2を使うのなら、もっと単価の安いGPUを使うのが良い
という結果がでましたが、ランダムにセットするパラメータにより
Early Stopが効くまでの処理時間がかわるので、あくまで参考..です。
p.s.
2018/10/16 追記
実は"sh hogehoge.sh"が上手く動作しなくなってしまった。
シェルスクリプトの各行を&&(半角アンパサント2個)でつないで
floyd run コマンドで指定して実行するので、かっこ悪いけどこの方法で..
コンテナってイミュータブルなのが売りなんじゃないのかねえ..
FloydHub Inc.は何考えてるんだか..
がっつり重くなって他の作業ができなくなるので
Floyd Hubで処理させることにした。
Floyd Hubは、機械学習コードの実行に特化したPaaSで
CPU(Xeon 2コア)は毎月一定時間無料で使用できる。
#無料枠時間は変更されることがあるので明記したくないのだけど
#私が使っていたときは24時間毎月使えていた。
Donkey Carのドキュメントには
AWS SageMakerで実行する方法が
のっているのだけどx1を使う時点で課金環境のようなので却下。
貧乏人はFloyd Hubの無料枠でシコシコ実行だ..
#それかGoogle Colabか
先にdonkeycar、floydhubとfloyd-cliをpip install しておく。
donkey createcar ~/mycar --template donkey2
を実行した後で
Floyd Hubサイトで新規データセット hogehoge を作成し
cd ~/mycar/data
floid login fugafuga
floyd init fugafuga/hogehoge
floyd data upload
を実行して学習コーパス(tubデータ)をサーバへ先にあげておく。
次に Floyd Hubサイト上で新規プロジェクト korekore を作成しておく。
~/mycar/train.sh というファイル名で
#!/bin/sh
git clone -b master https://github.com/wroscoe/donkey
cd donkey
pip install -e .
donkey createcar /mycar --template donkey2
cd /mycar
python manage.py train --tub /my_data --model /output/mypilot
というスクリプトを作成する。
そして ~/mycar/.floydignore というファイルを作成し、
data
とだけ書いて保存する。
そして
cd ~/mycar
floyd init korekore
floyd run --cpu --env tensorflow-1.7 --data fugafuga/datasets/hogehoge/1:/my_data "sh train.sh"
と実行すれば、CPUのみを使ってトレーニングを開始する。
自分の学習コーパスでは
100エポック完了させる前に
Early Exitが働いて1時間ほどで止まってしまう
..ので無料枠で十分学習できる。
ついでにtubデータをローカルPCから削除できるので
(Floyd Hubのデータセットとして保管しているから)
容量としてもスッキリ。
GPUやGPU2にするには --cpu を --gpu や --gpu2 にすれば動きます。
ちなみに以下の画面スナップは、同じ学習コーパスデータセットを使って
GPU/GPU2/CPUの費やした処理時間をあらわしています。
この場合は、GPU2を使うのなら、もっと単価の安いGPUを使うのが良い
という結果がでましたが、ランダムにセットするパラメータにより
Early Stopが効くまでの処理時間がかわるので、あくまで参考..です。
p.s.
2018/10/16 追記
実は"sh hogehoge.sh"が上手く動作しなくなってしまった。
シェルスクリプトの各行を&&(半角アンパサント2個)でつないで
floyd run コマンドで指定して実行するので、かっこ悪いけどこの方法で..
コンテナってイミュータブルなのが売りなんじゃないのかねえ..
FloydHub Inc.は何考えてるんだか..