Help us understand the problem. What is going on with this article?

社内勉強会:AWS DeepRacer基礎編(ログ取得)を開催した

はじめに

社内でAWS DeepRacer人口が増えてきており、ちょっと乗り遅れてしまった人向けにAWS DeepRacer勉強会基礎編を社内で開催したのでその内容を公開します。

本記事では基礎編のログ取得について解説しています。

その他の勉強会の内容については、以下の記事をご確認ください。

ログについて

ログの取得方法の種類

ログの取得方法はいくつかあります。

ログの種類とアクセス方法

  • Trainingログ:トレーニング中に出力されたログ

Training > Simulation Job > View logsをクリックします。

log_001.png

  • Evaluationログ:評価走行中に出力されたログ

Evaluation > Simulation Job > View logsをクリックします。

log_002.png

ログの表示

AWS DeepRacerコンソール画面からTrainingまたはEvaluationのView logsをクリックするとCloudWatchのコンソール画面に遷移します。ログストリームからログをクリックすると該当するログが表示されます。

log_003.png

log_004.png

※ Trainingログのキャプチャ

ログの取得

CloudWatchのコンソール画面の左ペインから、[インサイト]をクリックします。

log_006.png

log_005.png

Logs Insightsのコンソール画面から、以下の項目を入力し、[クエリの実行]ボタンをクリックします。

  • ①ロググループ名:/aws/robomaker/SimulationJobs
  • ②期間:処理を実行した期間を指定します   例)2019-06-13(00:00:00)-2019-06-13(23:59:59)
  • ③クエリ:
    • 以下のクエリを使用して、必要な行を取得するとともに、parseを使用して、各項目をCSV形式で取得できるようにします。
    • 1行目のシミュレーションIDを適宜書き換えてください。※ 例ではシミュレーションID:sim-abcd12345678
filter @logStream like /sim-abcd12345678/
| filter @message like /SIM_TRACE_LOG:/
| parse @message "SIM_TRACE_LOG:*,*,*,*,*,*,*,*,*,*,*,*,*,*,*" as episodes,tsteps,x,y,yaw,steering_angle,throttle,action_taken,reward,done,on_track,current_progress,closest_waypoint_index,track_length
| sort @timestamp asc

ログのダウンロード

[アクション] > [クエリ結果をダウンロード(CSV)]をクリックするとCSV形式でログをダウンロードすることができます。

log_007.png

log_008.png

ダウンロードしたCSVファイルのデータで、車両が通過した軌跡の視覚化や報酬の確認など、ログの分析をすることが可能です。

例)車両が通過した軌跡を視覚化

log_009.png

ログの出力

報酬関数内でprint文を書くことで、独自のログを出力することができます。

log_010.png

def reward_function(params):
    '''
    Example of penalize steering, which helps mitigate zig-zag behaviors
    '''

    # Read input parameters
    distance_from_center = params['distance_from_center']
    track_width = params['track_width']
    steering = abs(params['steering_angle']) # Only need the absolute steering angle

    waypoints = params['waypoints']

    # Calculate 3 markers that are at varying distances away from the center line
    marker_1 = 0.1 * track_width
    marker_2 = 0.25 * track_width
    marker_3 = 0.5 * track_width

    # Give higher reward if the agent is closer to center line and vice versa
    if distance_from_center <= marker_1:
        reward = 1
    elif distance_from_center <= marker_2:
        reward = 0.5
    elif distance_from_center <= marker_3:
        reward = 0.1
    else:
        reward = 1e-3  # likely crashed/ close to off track

    # Steering penality threshold, change the number based on your action space setting
    ABS_STEERING_THRESHOLD = 15

    # Penalize reward if the agent is steering too much
    if steering > ABS_STEERING_THRESHOLD:
        reward *= 0.8

    print("CUSTOM_LOG:wp={}".format(waypoints))

    return float(reward)

なお、Logs Insightsのコンソール画面から、ログを抽出する場合は以下のクエリを実行します。
※ waypointsは何行も表示される必要がないので、limit 1としています。

filter @logStream like /sim-abcd12345678/
| filter @message like /CUSTOM_LOG:/
| parse @message "CUSTOM_LOG:wp=*" as waypoints 
| sort @timestamp asc
| limit 1

まとめ

本記事では、CloudWatchから一部のログを取得する方法を解説しました。

ログを分析して効率的に精度向上していけたらと思います。

dnp
DNP大日本印刷は、約3万社の顧客企業や生活者に対し、幅広い事業分野で多様な製品やサービスを提供する世界最大規模の総合印刷会社です。お問い合わせは各記事のコメント欄にお願いいたします。
https://www.dnp.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした