하…. 이거 한다고 거의 며칠을 날렸다. A3C 성능이 좋다길래 따라 해 봤는데, 내가 가진 책은 tensorflow 1.x 버전 기준 코드가 실렸다. tensorflow 2.x대로 업데이트 되면서 과거 여러 능력자들이 구현한 fit 부분 코드를 사용할 수 없게 되었다. 대세는 gradienttape()로 네트웍을 업데이트 하는 방법이라고 한다. a3c에서는 local 모델을 global 모델과 똑같이 만들고, local model 경험으로 global network를…… a3c global network update 계속 읽기
[카테고리:] 생활코딩
keras-rl2
누군가 열심히 개발한 알고리즘을 개발했다면, 내가 처음 코드를 만든다면 할만하다. 그러나 인터넷에 시간이 남아도는 인간이 많고 그들을 다 제치고 내가 처음이 아닌 확률이 상당히 크다. 누군가 만든 고급진 코드를 충분하게 찾아 볼 필요가 있고, 만약 있다면 다시 할 필요는 없다. 다시해도 그 성능을 넘어설 수 없다. 찾아보니 강화학습을 쉽게 사용할 수 있는 keras-rl을 찾았다. 2.0…… keras-rl2 계속 읽기
A2C keras로 구현(updated, 완성)
a2c를 keras로 사용하려면 loss function을 새롭게 정의해야 한다. 보통 fit으로 넘어오는 인자가 input, output 각 한 개씩 사용한다. input이나 output으로 파라미터를 넘길 때 advantage를 같이 넘겨야 한다. tensorflow 1.x에서는 이게 꼼수로 되었는데, 2.x로 올라오면서 안된다. 아래 보면 actor loss가 0으로 고정되어 있다. 입력 파라미터를 넘길 때 리스트로 2개를 넘길 수 있다. input = [input, advantage]…… A2C keras로 구현(updated, 완성) 계속 읽기
blas gemm launch failed tensorflow 2.0
전에 어떻게 해결했는지 모르겠지만, gtx 1060에 model prediction 을 실행하면 BLAS GEMM 어쩌구 나온다. 아래와 같이 cuda 버전 문제이다. apt-get purge libcublas10 libcublas-dev apt-get install libcublas10=10.2.1.243-1 libcublas-dev=10.2.1.243-1 cuda-libraries-10-1 cuda-libraries-dev-10-1 https://github.com/tensorflow/tensorflow/issues/37233
강화학습으로 훈련한 스토리지(experience replay)
전 방법으로 학습되지 않아, expirence replay를 끼워 넣었다. 한 state, action 세트를 학습하면 다른 케이스를 잘 학습하지 못했다. 대차가 뒤쪽에 들어간 경우 문제를 풀지 못해, 매 reset 시점 typeA 대차를 뒤쪽에 있을 확률을 키워 학습했지만 잘 안되었다. batch로 한 번에 여러 케이스를 학습해야 잘 되었다. 역시 누군가 뚫은 길을 가는게 쉽다. experience repaly로 한번에 1,000개씩…… 강화학습으로 훈련한 스토리지(experience replay) 계속 읽기