LoginSignup
9
7

More than 5 years have passed since last update.

SageMaker RL と RoboMakerのサンプルを試す ~ 頑張れDeepRacer ~

Posted at

SageMaker RLとは

Amazon SageMaker RL – Amazon SageMakerを使ったマネージドな強化学習
https://aws.amazon.com/jp/blogs/news/amazon-sagemaker-rl-managed-reinforcement-learning-with-amazon-sagemaker/

RoboMakerとは

AWS RoboMaker-インテリジェントなロボットアプリケーションの開発、テスト、デプロイと管理
https://aws.amazon.com/jp/blogs/news/aws-robomaker-develop-test-deploy-and-manage-intelligent-robotics-apps/

DeepRacerとは

AWS DeepRacer – 強化学習のハンズオン at re:Invent
https://aws.amazon.com/jp/blogs/news/aws-deepracer-go-hands-on-with-reinforcement-learning-at-reinvent/

サンプルドキュメント

こちらが本投稿で試してみたサンプルとなります。
https://github.com/awslabs/amazon-sagemaker-examples/tree/master/reinforcement_learning/rl_deepracer_robomaker_coach_gazebo

AWSのgithubが更新が激しいため、私が試したコードと内容が変わる可能性があるため、今のスナップショットとして、以下にも同じものを保存しています
https://github.com/asahi0301/sagemaker-demo/tree/master/reinforcement_learning/rl_deepracer_robomaker_coach_gazebo

SageMaker Notebookを起動するとサンプルコードがすでにダウンロードされているため、すぐに試せます。便利です。
まずは、そのサンプルコードで試してみて、動かなければ私のレポジトリをCloneしてください。

事前準備

SageMaker Notebookを起動します

VPC外でもVPC内でもどっちでも大丈夫です。
RoboMakerが2018/12/04時点では東京リージョンにないため、SageMaker Notebookは「バージニア北部リージョン」で作成しています。
インスタンスタイプは、t2の一番小さいものでも大丈夫です。
SageMaker Notebookの割り当てているIAMロール(下図の赤枠の部分)の修正が必要になります
image.png
また、SageMaker NotebookはVPC外でもVPC内でもどちらでもいいのですが、
サンプルコードではSagemakerのTraining JobやRoboMakerはdefault VPC内で作成されるようになっているため、
Default VPCを消している人は再作成しておく必要があります

IAMロールの修正

IAMロール名は各環境で異なるためSageMaker Notebookのマネジメントコンソールより確認してください
「Permissions」で「AmazonSageMakerFullAccess 」がアタッチされていることを確認します
image.png
「Trusted entities」が「The identity provider(s) sagemaker.amazonaws.com 」となっていることを確認します
image.png
「Edit Trust Relationship」を押して、以下のようにPolicy Documentを編集して、更新します
image.png
更新後に「Trusted entities」が「The identity provider(s) sagemaker.amazonaws.com と robomaker.amazonaws.com 」になっていることを確認します
image.png

以上で事前準備は終わりです。

サンプルノートブック(コード)を開きます

rl_deepracer_coach_robomaker.ipynb
image.png

Not TrustedをTrustedへ変更します

image.png
image.png

コードを順番に実行します

image.png

RoboMakerのコンソールへ移動します

コードを順番に実行して「Clean Up」直前まで進めます。
以下の部分で、RoboMakerへのリンクが表示されるので、クリックします
image.png

「Status」がRunningになっていることを確認して、Gazeboを開きます
Gazeboのチェックボックスを選択して、Action - Open を選択します。
image.png

すると画面が切り替わり、以下のようにDeepRacerが走り出しているのを確認できます
image.png

リソースの確認

SageMakerのトレーニングジョブ

ml.c5.4xlargeを1インスタンス使って、5時間(18000s)のトレーニングが実行されています
5時間経過すると自動的にトレーニングが停止(Stopped)します
image.png
image.png

RoboMakerの確認

Simulation Application と Simuation Job が作成されていることを確認できます
image.png
image.png

まとめ

サンプルコードを触っただけですが、見事SageMaker RLとRoboMakerを利用して、DeepRacerを走らせることができました。
次回は、サンプルコードの解説を私の理解できる範囲で行いたいと思います

最後の削除

5時間待ってリソースを削除してもいいですが、すぐに削除したい場合は
SageMakerのトレーニングジョブの停止
SageMaker Notebookの停止(必要なら削除)
RoboMakerのSimulation Applicatio と Simuation Jobの削除
S3に保存してデータの削除
を行いましょう。

9
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7