안녕하세요?


지난번 포스팅에서 가시화기 모듈(Visualizer.py)에서 무언가 오류가 있다는 내용으로 마무리를 지었는데, 이번 포스팅에서는 그 오류를 해결 하면서, 또 다르게 나오는 오류들을 차례차례 해결해 가면서 인공지능으로 주식투자 모델을 만들어 가는 것을 포스팅 하고자 합니다.



이번에는 어디가 오류인가 했더니, 위 스크린샷에서 빨간색 밑줄을 친 부분에서 오류인데, 일단 처음에는 matplotlib을 가지고 오기(import)하기만 하면 되는 것이라고 생각을 했습니다만, 실제로는 .pyplot이라는 것을 추가로 입력해 주어야만 오류가 없이 돌아갈 수 있는 것 이었습니다.



그렇게 해서 다시 돌려 보았더니, 이번에는 TypeError이라고 나오는데, 또 어디서 에러가 터졌나 하는 생각이 들어서 가 보았습니다.



어이없다면 어이없게도, facecolor이라고 타이핑을 해야 하는 곳에다가 facecoler라고 타이핑을 해서 인식을 못하는 문제가 발생한 것 이었습니다. 그래서 남은 과정은 당연하다면 당연하게도 오타를 고쳐주는 것 이었습니다.



그리고 다음에는 main모듈에서 시작시 초기 자본금이 천만원이 있는 것을 10만원으로 줄이도록 해 보았습니다. 이렇게 하는 것으로 어떻게 작업을 다시 이어가도록 합니다.




위 스크린샷에서 10만원의 초기 자본금으로 바뀌는 것을 볼 수 있었습니다. 이렇게 하고서 이제 서둘러서 다음 단계로 가도록 해 봅니다.



다음에는 어디가 또 에러인가 했더니, 위 스크린샷처럼 where라고 타이핑이 되어 있어야 하는 곳에서 whrere라고 오타가 나서 또 에러가 터진 것을 볼 수 있었습니다.



이렇게 하고나서 이제서야 기계학습에 들어가는 것을 볼 수 있었습니다! 위 스크린샷에서 기계학습이 진행되는 것을 보여주고 있는 것이며, 위 과정은 오후 3시 40분에서 시작해서 오후 5시 28분에 이 기계학습이 끝나는 것을 볼 수 있었습니다.



그런데 1시간 48분의 계산결과가 위 스크린샷처럼 또 다른 어떤 에러에 의해서 다 끝나고 나서 마무리를 짓지 못하는 것을 볼 수 있었습니다. 또 더이가 문제인가 해서 살펴 보았더니.....




일단 위 스크린샷처럼 epoch_summary라는 폴더 안에서 1000개의 그림파일이 생성되는 것으로 보아서 기계학습을 했는 결과가 나오는 것을 볼 수 있었습니다.



그러나 문제는 정작 기계학습을 하면서 나왔는 모델은 전혀 나오지 않은 것을 볼 수 있었습니다. 이러한 이유로 뭐라고 해야 할까요? 1시간 48분간의 기다림이 그냥 실패로 끝났다고 할 수 있습니다.



일단 에러가 어디서 나왔는가 했더니, 위 스크린샷을 보시면 model_dir과 같은 메소드에서 에러가 나왔는 것을 알 수 있었습니다. 그래서 경로를 바꾸는 것은 좋은데 또 1시간 48분을 기다릴 수는 없으니, 에포크는 1번만 하도록 합니다.



그리고 여기만 바꿔놓으면 안되고 정책학습기(policy_learner.py)에서 나오는 부분에서도 에포크의 횟수를 1로 지정을 하고 나서 한번 원하는 경로에 제대로 모델이 저장이 되는지를 살펴 보고자 합니다. 이제 마지막이 그렇게 많이 남지 않았지만, 그래도 포스팅이 너무 길어진 감이 없지않아 있으니, 이번 포스팅은 여기서 끊어 보고자 합니다.

  1. 모르 2020.08.19 22:58

    LR: 0.001, DF: 0, TU: [1, 2, DRT: 0.2
    2020-08-19 22:55:39.629421: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cublas64_10.dll
    2020-08-19 22:55:39.904384: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cudnn64_7.dll
    Traceback (most recent call last):
    File "D:\딥러닝\test ai\main.py", line 59, in <module>
    discount_factor=0, start_epsilon=.5)
    File "D:\딥러닝\test ai\policy_learner.py", line 172, in fit
    initial_balance=self.agent.initial_balance, pvs=memory_pv
    File "D:\딥러닝\test ai\visualizer.py", line 46, in plot
    self.axes[1].plot(x, num_stocks, '-k') # 보유 주식 수 그리기
    File "D:\딥러닝\test ai\venv\lib\site-packages\matplotlib\axes\_axes.py", line 1743, in plot
    lines = [*self._get_lines(*args, data=data, **kwargs)]
    File "D:\딥러닝\test ai\venv\lib\site-packages\matplotlib\axes\_base.py", line 273, in __call__
    yield from self._plot_args(this, kwargs)
    File "D:\딥러닝\test ai\venv\lib\site-packages\matplotlib\axes\_base.py", line 399, in _plot_args
    raise ValueError(f"x and y must have same first dimension, but "
    ValueError: x and y must have same first dimension, but have shapes (475,) and (0,)

    Process finished with exit code 1

    이 오류가 계속 발생합니다.... 라인 따라 오타 확인 했는데 같은 증상 입니다.
    수정을 뭘 해야 할까요??? ㅠㅠ

    • 안녕하세요?

      저도 이 에러에 많이 당황했는데, 일단 가만히 보면 dimension이 에러라고 해서 아마 그래프를 그리려고 하는 곳에서 에러가 벌어진 것으로 보입니다. 아마도 그림을 그리려고 하는 1개 그림파일 안에 세부적인 파트 갯수와 들어가는 데이터의 겟수가 차이가 난 것으로 보입니다.
      다만 저도 정확한 사정을 몰라서 잘 모르겠습니다만, 일단 여기까지만 이야기를 할 수 있어 보입니다.
      ps : 경로가 나온 것을 보면 한글명 폴더가 있는데, 이거 만에하나 에러를 일으킬 가능성이 있어서 제 경우에는 가급적이면 자제합니다.

  2. 모르 2020.08.20 19:33

    한글폴더명을 바꿔도 변함이 없네요..
    어딘가 오타가 있을 확률이 높아서 코드 전부 확인 하러 가겠습니다~!

    • 모르 2020.08.20 21:18

      3시간여 걸쳐 확인 작업을 한 결과.....
      오타가 조금 있네요..ㅠㅠ
      전부 수정하고 나니 작동 됩니다~!!
      감사합니다~ ( _ _ )

    • 안녕하세요?

      간밤에 피로해서 댓글을 못 단 사이에 고생이 많으셨군요.
      저도 오타로 인한 에러 때문에 이래저래 고생을 많이 했었고, 지금도 조심 또 조심하지 않으면 안되는 상황입니다. 이래저래 인간이 프로그램을 짜면서 이 오타의 문제는.......... 정말인지 뭐라 할말이 없습니다.

  3. ddd 2020.10.29 18:30

    혹시 인터넷떠돌이님의 깃허브 레포지토리가 따로 있을까요..? 현재 발행되는 그 케라스/텐서플로우 머신러닝 책은 개정된 것 같아서요 ㅠㅠ

    • 안녕하세요?

      예약 발행만 한다고 좀 답그리 늦었습니다. 일단 제 경우에는 깃 허브를 쓰지 않고 저 혼자해서, 깃허브가 현재도 없습니다.
      그래서 하드가 한번 날라가서 데이터도 날려먹었습니다.

+ Recent posts