graduation-project's Issues
마지막 비디오가 정상적으로 녹화되지 않는 문제
Wrappers.monitor deprecated 이슈
버전 업데이트 하지 말든지 다른 녹화 방법을 찾든지 해야함
하이퍼파라미터 클래스 문자열 표현 추가
dqn, ddqn 리팩토링 필요
네트워크를 두 개 돌리는 부분을 dqnrunner에서 처리하는 게 아무리 생각해도 이상함
다른 알고리즘 구현하고 비교해도 일관성도 떨어지기 때문에 내부에 숨겨야 함.
근데 이러면 dqn 자체는 nn.Module을 상속한 게 아니게 됨.
그럼 runner에서 네트워크 저장 불러오기를 처리하는 것보다, 알고리즘의 메소드로 넣어두는 게 나을 듯.
그래도 runner는 필요한 게 왜냐하면 env를 알고리즘에 넣어버리면 결합도가 너무 높아질 것 같음.
네트워크(weights) 파일명에 추가 정보 입력
알고리즘-환경-네트워크정보-최종점수-시간
logger 추가로 인한 클래스 수정
참조 a5889d5
Reinforce
ActorCritic
DQN
DDQN
PPO
PPOlstm
모델 save/load 기능 추가
학습된 net의 state_dict을 저장하고 불러올 수 있어야 함.
모델을 통째로 저장하는 건 의존성이 너무 커서 부적절한 방법임.
https://tutorials.pytorch.kr/recipes/recipes/saving_and_loading_models_for_inference.html
음 일단 runner에 추가하고 run에서 _episode_loop를 _train_loop로 바꾸고 _play_loop를 추가해야 할 것 같음.
아니다 _episode_loop는 놔두고 _episode_prepare에서 저장한 모델을 불러오는 함수를 호출하는 게 나을 듯.
_episode_sim 을 train_sim과 play_sim으로 분리해서 학습 하지 않는 분기를 만들자
recorder 재작성 필요함
index가 1부터 시작하는 게 아니고 지나간 에피소드는 녹화할 수가 없는 것이었다.
원래 index + 1로 줘서 시뮬을 한 번 더 돌려야 녹화되는 거였고... 어쩐지 이상하더라
Runner의 save/load는 abstract method일 필요가 없음
어차피 알고리즘 바꿔도 nn.Module의 subclass일 거라 상관이 없음.
알고리즘 인터페이스 필요
구조의 일관성이 부족함
현재 value-based 계열은 net이 별개로 존재하고 policy-based 계열은 그 자체가 net임
비디오 녹화시 발생하는 Warning 문제
warning이 거슬리는 부분만 빼면 급한 문제는 아님.
\lib\site-packages\pyglet\image\codecs\wic.py:289: UserWarning: [WinError -2147417850]
스레드 모드가 설정된 후에는 바꿀 수 없습니다
warnings.warn(str(err))
로그(tensorboard) 파일명에 추가 정보 입력
알고리즘-환경-네트워크정보-시간
recorder 오버헤드 문제
score를 보고 episode를 저장하려면 어쨌든 지속적으로 frame capture를 해야함. 이게 생각보다 오버헤드가 큼.
그래서 최근 n개 평균 점수가 얼마 이상인 경우 전부 저장하도록 recorder를 활성화하고, simulation 후에 일정 점수에 미달하는 video를 제거하는 방향으로 구현해야 함.
TD ActorCritic 학습 시간 이슈
LunarLander 에서 다른 알고리즘보다 4배 이상의 학습시간이 소요되는 문제 발견
원인 파악 요망
모든 알고리즘에 메소드 추가해야 함
runner가 변경되어서 모든 알고리즘에 save_net, load_net, set_eval, set_train 메소드를 추가해야 함.
Runner에서 load 후에도 train이 가능하게 수정 해야함
지금은 재학습을 고려하지 않은 코드임.
모델로 추론하려면 model.eval() 을 호출하여 dropout과 batch normalization layer를 evaluation 모드로 바꿈.
eval이 끝난 후 이어서 학습하고 싶다면 꼭 model.train()를 호출해야 함.
https://bluehorn07.github.io/2021/02/27/model-eval-and-train.html
policy gradient 계열 알고리즘 수정 필요 (train=False)
train=False인 경우 action을 샘플링하지 말고 argmax를 고르도록 수정해야 함.
ppo_runner의 _episode_sim 같은 애들
알고리즘 추가 필요
a2c, a3c, ddpg
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.