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

RLTrader의 유저 인터페이스를 만드는 작업-12-

by 인터넷떠돌이 2018. 12. 16.
반응형

안녕하세요?


이번 포스팅에서는 기껏 기계학습을 했는데, 그 결과를 저장하지 않으면 아무런 소용이 없습니다. 그래서 이번 포스팅에서는 그 저장하는 폴더를 지정하기 위해서 이래저래 코드와 씨름을 하는 과정을 한번 올려보고자 합니다.



먼저 위 스크린샷에서 보이는 것처럼, 저장할 폴더라는 버튼을 누르면, 해당하는 메소드가 실행이 되도록 일단 코드를 만들어 주도록 합니다.



그리고 나서 QFileDialog.getExistingDirectory()라는 메소드를 이용해서 실제로 존재하는 폴더를 선택하도록 만들어 주도록 합니다. 그리고 나서 다음으로는 Checking_Save_Folder()라는 메소드도 만들어 보도록 합니다.



당연하다면 당연하게 여기서도 앞에서 만든 데이터 베이스 파일을 지정하는 것과 같이, 폴더의 경로를 표시해 주는 lineEdit_4에서 텍스트가 바뀌면, 이렇게 메소드가 작동을 하도록 만들어 주고 있습니다.



실제로 프로그램을 실행 시켜서, 폴더를 지정해 주면, 표식까지 제대로 나오는 것을 볼 수 있습니다. 이렇게 해서 일차적인 작업은 마무리가 된 듯 합니다.




그 다음에는 강화 학습 시작이라는 메소드의 버튼을 누르고 나서, 위 스크린샷에서 나오는 것처럼 코드를 짜서, 하나라도 조건이 충족되지 않으면 경고 박스가 뜨도록 디자인을 바꾸어 주도록 합니다.



그 다음에는 원래 RLTrader에 있던 정책 신경망을 파일로 저장이라는 항목을 그대로 가지고 오도록 합니다. 여기다가 당연하다면 당연하게 model_dir에서 원래는 기본적으로 셋팅이 되어 있던 항목을 제가 지정한 폴더의 위치로 바꾸도록 만들어 주도록 합니다.



다음은 policy_learner.py로 가서, 위 스크린샷에서 나와 있는 것처럼 from main import MainWindow라는 형식으로 바꾸어 주도록 합니다. 다른 방법도 시도를 해 보았지만, 결국 가서는 from py파일이름 import 클래스 이름 이라는 형식으로 지정을 해야 제대로 된 import가 가능했습니다.



그리고 나서 policy_learner.py에 있는 위 스크린샷처럼 가시화 결과를 저장할 폴더도 있는데, 여기도 역시 MainWinow라고 하는 main.py에 있는 클래스 변수를 가지고 오도록 합니다. 한가지 신기한 것은 여기서는 self를 붙이지 않아도 가능하다는 것 입니다.




그리고 나서 진짜로 학습이 진행이 되는 지를 살펴보기 위해서 일단 에포크의 숫자를 10만으로 줄여 봅니다. 이건 어디까지나 제대로 움직이는 지 아닌지 알아보기 위한 과정이기 때문에 이런 과정을 하는 것 입니다.



그런데 위 스크린샷과 같은 에러가 뜨는데, 이게 무슨 에러인가 싶은 생각이 듭니다.



결국 하다하다 python의 작동이 중지되는 것을 볼 수 있는데, 어디가 어떤 문제인지는 잘 모르겠습니다. 다만 하나 알 수 있는 것은 하나 있는게, 또 다시 골치 아픈 일이 시작이 되었다는 것 입니다. 아무튼 다음 포스팅에서는 이 오류를 해결하기 위한 과정에 들어간 다고 보시면 될듯 합니다.

반응형