Simulator code 검증방법

작성자 이경미 수정일 2023-01-02 14:27

#BakingSoDA v2.1.0.0

아티클 관련 제품: BakingSoDA v2.1.0.0

들어가며

  • experiment 를 생성하기 전 시뮬레이터 학습 코드를 점검할 수 있습니다.



내용

학습 코드를 작성하는 과정은 베이킹소다에서 제공하는 틀을 이용하여 쉽게 작성할 수 있습니다. 

하지만 학습하는 대상에 따라 코드가 다른 상황이 발생하고, 코드를 검증할 수 있는 단계가 필요합니다. 

이는 베이킹소다에서 제공하는 검증 코드를 사용하여 확인할 수 있습니다. 


프로젝트 > 학습 코드 작성 

시뮬레이터 학습코드는 app > simulator > sim.py 에서 작성할 수 있습니다. 

기본적으로 제공되는 틀을 확인한 뒤 학습 데이터 및 학습코드를 구현합니다. 


학습 코드 검증 (1)

다음과 같이 simulator code 를 검증하는 python 코드가 적용되어 있습니다. 


따라서 터미널을 열어 해당 파일을 실행시킨 뒤 정상적으로 작동하는 코드임을 검증할 수 있습니다. 

1. 마우스 오른쪽을 클릭하여 팝업 메뉴를 활성화 시킵니다. 

2. Open in Integrated Terminal 을 클릭합니다. 

3. 표시된 것과 같이 터미널이 생성되는 것을 확인할 수 있습니다. 


학습코드 검증 (2)

테스트를 위해 test_simulator.py 를 실행시킵니다. 이 때, 작성된 학습코드를 기반으로 시뮬레이터가 정상동작하는 것을 확인할 수 있습니다. 

python test_simulator.py 
configuration file loaded /app/cartpole/app
 * Serving Flask app "app" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://0.0.0.0:45272/ (Press CTRL+C to quit)
2023-01-02 14:20:12,301 | app.mod_service.controllers | INFO | create simulator
2023-01-02 14:20:12,302 | app.mod_service.services | INFO | create_simulator
2023-01-02 14:20:12,304 | app.mod_service.services | INFO | 830b2a24-9a6f-4e04-b8ea-d296e38caa1e simulator created...
new_sim {'gravity': 9.8, 'masscart': 1.0, 'masspole': 0.1, 'total_mass': 1.1, 'length': 0.5, 'polemass_length': 0.05, 'force_mag': 10.0, 'tau': 0.02, 'kinematics_integrator': 'euler', 'theta_threshold_radians': 0.20943951023931953, 'x_threshold': 2.4, 'action_space': Discrete(2), 'observation_space': Box([-4.8000002e+00 -3.4028235e+38 -4.1887903e-01 -3.4028235e+38], [4.8000002e+00 3.4028235e+38 4.1887903e-01 3.4028235e+38], (4,), float32), 'screen': None, 'clock': None, 'isopen': True, 'state': None, 'steps_beyond_done': None}

... 중략 ...

====================
==  action  ==
action               : 0
sim_id               : 830b2a24-9a6f-4e04-b8ea-d296e38caa1e
====================
2023-01-02 14:20:12,459 | app.mod_service.controllers | INFO | step simulator
2023-01-02 14:20:12,459 | app.mod_service.services | INFO | step_simulator
2023-01-02 14:20:12,459 | app.mod_service.services | INFO | 830b2a24-9a6f-4e04-b8ea-d296e38caa1e simulator step...
2023-01-02 14:20:12,464 | app.mod_service.services | INFO | 830b2a24-9a6f-4e04-b8ea-d296e38caa1e:0 simulator next_state=[ 0.20396769  1.20670389 -0.24913316 -1.95277342]...
127.0.0.1 - - [02/Jan/2023 14:20:12] "POST /api/v1.0/simulator/step HTTP/1.1" 200 -
====================
==  step  ==
result               : success
next_state           : [0.20396769098552386, 1.2067038898430915, -0.24913315945229791, -1.9527734234583822]
reward_metrics       : {'done': True, 'steps_beyond_done': None}
done                 : True
====================

            [COMPLETE]
            ################################################
            Simulator works fine.
            Write the required package, requirements.txt, 
            and upload the code to the GitLab Repostiory. 
            ################################################
            
2023-01-02 14:20:12,470 | app.mod_service.controllers | INFO | delete simulator
2023-01-02 14:20:12,471 | app.mod_service.services | INFO | current simulators -> {}
2023-01-02 14:20:12,472 | app.mod_service.services | INFO | 830b2a24-9a6f-4e04-b8ea-d296e38caa1e simulator closed...
127.0.0.1 - - [02/Jan/2023 14:20:12] "POST /api/v1.0/simulator/delete HTTP/1.1" 200 -
thread kill...


정상 동작 결과 

            [COMPLETE]
            ################################################
            Simulator works fine.
            Write the required package, requirements.txt, 
            and upload the code to the GitLab Repostiory. 
            ################################################


아티클이 유용했나요?

훌륭합니다!

피드백을 제공해 주셔서 감사합니다.

도움이 되지 못해 죄송합니다!

피드백을 제공해 주셔서 감사합니다.

아티클을 개선할 수 있는 방법을 알려주세요!

최소 하나의 이유를 선택하세요
CAPTCHA 확인이 필요합니다.

피드백 전송

소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.

02-558-8300