아티클 관련 제품: 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. ################################################
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.