본문 바로가기
무모한 도전-주식 인공지능 만들기

본격적인 RLTrader의 작동-모델 만들기 시작 part2

by 인터넷떠돌이 2018. 10. 31.
반응형

안녕하세요?


지난번 포스팅에서 어떻게 해서 휴먼에러를 해결하는 것을 보여주었습니다만, 문제는 이게 시작이라는 것 입니다. 일단 애매하게 지난번 포스팅이 끝이 났는데, 유감스럽게도 이번 포스팅도 애매하게 끝날 수준으로 내용이 너무 많고 길어서 하는 수 없이 이렇게 잘라야만 했습니다.



이번에는 무슨 에러인가 했더니 차트 데이터에는 15개나 되는 요소가 있는데 열은 6개만 있다는 것이 에러의 이유입니다. 그리고 에러는 어디서 일어난 것인가 했더니 data_manager모듈에서 발생한 것이기 때문에, 여기를 찾아가 보도록 합니다.



일단 제대로 작동하는 것을 확인해 보기 위해서 print()함수를 활용해 보도록 합니다.



일단 data_manager.py에서 8번째 줄에서 에러가 나서 걸린다는 것을 알 수 있었습니다.



이 에러는 코딩이 아니라 바로 엑셀파일을 수정해야 하는 것 이었습니다. 일단 이름을 바꾼 csv파일에서 날짜, 시가, 고가, 저가, 종가, 거래량을 빼고는 모두 지워서 6개의 열만을 남기도록 합니다.




이번에는 이전과는 다르게 많이 날라가기는 했지만, 그래도 또 다른 에러가 발생했습니다. 이번 에러는 특이하게도 엑셀 파일의 93번째 줄에서 예상과는 다르게 6열을 넘어가는 것이 있다고 하는 것 이었습니다.



이게 어디가 문제인가 했더니, 그냥 마이크로 소프트 엑셀에서 저장을 누르면 되는 것이 아니라, 일일히 바꿔준 다음에 csv UTF-8(쉼표로 분리)라는 식으로 만들어서 어떻게 새로 저장을 해야 했습니다. 이걸 잘못해서 발생한 에러였습니다.



이번에는 속성에러(AttributeError)이라고 해서, 무언가 변수나 이런 것의 선언이 잘못 되었다는 것을 알려주는 에러입니다. 그래서 한번 agent.py를 살펴 보도록 했습니다.



알고 봤더니 휴먼에러의 18번! 휴먼에러라고 하면 정말 빠질 수 없는 전형적인 에러인 바로 '오타'가 이 에러의 원인 이였습니다. 그래서 STATE_DIM이라고 타이핑을 해야 하는데, 실수로 STATE_DIN이라고 타이핑을 해서 이런 에러가 발생한 것 이었습니다.




결국 찾아다니다 보니 이 에이전트 클레스에서 잘못 타이핑이 되어 있는 오타를 수정 하도록 합니다.



그러나 좋아할 틈도 없이 또 다른 에러가 발생하는 것을 볼 수 있었습니다. 이번에 발생한 에러는 일종의 TypeError라고 하는데 실은 이게 별것 없는 에러인 것이...........



정책 신경망 모듈에서 위 스크린샷에 보이는 부분에서 빨간색 밑줄을 친 부분에서 나와 있는 곳에 ()를 빼 먹어서 생기는 에러였습니다. 이 역시 휴먼 에러의 빠지면 섭섭한(?)것이라고 해야 할 오타가 일으킨 에러였습니다.



그리고 이번에는 가시화기 모듈에서 또 에러가 발생하는 것을 볼 수 있습니다. 지금까지 보신 휴먼 에러가 전부가 아니라, 앞으로 또 나올 것인데, 이걸 보고서 느낀 것이지만, 인공지능은 분명히 강력한 도구일 수는 있지만, 사용자를 타는 도구라는 것을 알 수 있었습니다. 이렇게 휴먼에러가 많아서야.............

반응형