Translate

2018年9月26日水曜日

Donkey CarのトレーニングをFloyd Hub上で実行する

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 というファイル名で


#!/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.は何考えてるんだか..

0 件のコメント:

o1-previewにナップサック問題を解かせてみた

Azure環境上にあるo1-previewを使って、以下のナップサック問題を解かせてみました。   ナップサック問題とは、ナップサックにものを入れるときどれを何個入れればいいかを計算する問題です。数学では数理最適化手法を使う際の例でよく出てきます。 Azure OpenAI Se...