8장

최적화 보상 함수

도움말

이 보상함수는 링크 를 참고 하였습니다.

Capstone_AWS_DeepRacer

주피터 노트북에서 deepracer-notebook/functions/ct.py 파일을 클릭합니다.

파이선 파일 266번째 줄에 있는 racing_track 변수를 deepracer-notebook/outputs/reInvent2019_track_ccw-5-500.py 의 내용으로 수정합니다.

STANDARD_TIME 은 일반으로 완주 했을때의 시간입니다.

FASTEST_TIME 은 최고 기록을 세운 시간입니다.

이제 이 함수로 훈련을 시작해 보겠습니다.

Create model

AWS Console 의 Deepracer 서비스로 이동합니다. Your models 메뉴에서 Create model 을 클릭합니다.

Model name 을 입력 합니다. 저는 ch-ccw-01 으로 입력했습니다.

TrackSmile Speedway 를 선택합니다.

Track directionCounterclockwise 를 선택합니다.

Next 를 클릭합니다.

HyperparametersDiscount factor0.95 를 입력합니다.

Next 를 클릭합니다.

Select action space 에서 Discrete action space 을 선택합니다.

Define discrete action space 에서 다음을 설정 합니다.

Steering angle granularity = 7

Speed granularity = 3

Action list 에서 Advanced configuration 을 선택합니다.

Add an action 을 클릭하여 9개의 액션을 추가합니다. 총 30개의 액션이 되어야 합니다.

이제 Steering angleSpeed 에 다음과 같은 값을 입력합니다.

[
  { "steering_angle": -30.0, "speed": 1.1, "index": 0 },
  { "steering_angle": -24.0, "speed": 1.1, "index": 1 },
  { "steering_angle": -24.0, "speed": 1.8, "index": 2 },
  { "steering_angle": -24.0, "speed": 2.5, "index": 3 },
  { "steering_angle": -16.0, "speed": 1.1, "index": 4 },
  { "steering_angle": -16.0, "speed": 1.8, "index": 5 },
  { "steering_angle": -16.0, "speed": 2.5, "index": 6 },
  { "steering_angle": -16.0, "speed": 3.2, "index": 7 },
  { "steering_angle": -8.0, "speed": 1.1, "index": 8 },
  { "steering_angle": -8.0, "speed": 1.8, "index": 9 },
  { "steering_angle": -8.0, "speed": 2.5, "index": 10 },
  { "steering_angle": -8.0, "speed": 3.2, "index": 11 },
  { "steering_angle": -8.0, "speed": 3.9, "index": 12 },
  { "steering_angle": 0.0, "speed": 3.9, "index": 13 },
  { "steering_angle": 0.0, "speed": 3.2, "index": 14 },
  { "steering_angle": 0.0, "speed": 2.5, "index": 15 },
  { "steering_angle": 0.0, "speed": 1.8, "index": 16 },
  { "steering_angle": 8.0, "speed": 3.9, "index": 17 },
  { "steering_angle": 8.0, "speed": 3.2, "index": 18 },
  { "steering_angle": 8.0, "speed": 2.5, "index": 19 },
  { "steering_angle": 8.0, "speed": 1.8, "index": 20 },
  { "steering_angle": 8.0, "speed": 1.1, "index": 21 },
  { "steering_angle": 16.0, "speed": 3.2, "index": 22 },
  { "steering_angle": 16.0, "speed": 2.5, "index": 23 },
  { "steering_angle": 16.0, "speed": 1.8, "index": 24 },
  { "steering_angle": 16.0, "speed": 1.1, "index": 25 },
  { "steering_angle": 24.0, "speed": 2.5, "index": 26 },
  { "steering_angle": 24.0, "speed": 1.8, "index": 27 },
  { "steering_angle": 24.0, "speed": 1.1, "index": 28 },
  { "steering_angle": 30.0, "speed": 1.1, "index": 29 }
]

Next 를 클릭합니다.

차량은 The Original DeepRacer 를 선택합니다.

Next 를 클릭합니다.

Reward function 에 처음의 코드를 입력합니다.

함수가 잘 작성되었는지 확인하기 위해 Validate 를 클릭합니다.

Stop conditionsMaximum time200 을 입력합니다.

다음 설정들은 모두 체크를 해제 합니다.

Create model 을 클릭합니다.

초기화가 완료 되면 훈련을 시작 할 것 입니다.

Trainning

200분 훈련을 완료하였습니다. 아마도 다음과 같은 그래프가 나올 것 입니다.