quantylab / rltrader

파이썬과 케라스를 이용한 딥러닝/강화학습 주식투자 - 퀀트 투자, 알고리즘 트레이딩을 위한 최첨단 해법 입문 (개정판)
https://contents.premium.naver.com/misoncorp/quantylab
MIT License
353 stars 360 forks source link

버전 v3은 잘 되는데, v1,v2는 오류발생 #149

Open widebowl opened 1 year ago

widebowl commented 1 year ago

버전 v3에서는 GPU까지 동작하며 잘 되는데, v1,v2는 오류발생합니다. 아래에 메시지를 첨부합니다.

(py36_rltrader30) D:\Investment\AI-Trader-test\rltrader QuantyLab\rltrader-3.0>python main.py --mode train --ver v2 --name 005930 --stock_code 005930 --rl_method a2c --net lstm --start_date 20160104 --end_date 20181228 {"mode": "train", "ver": "v2", "name": "005930", "stock_code": ["005930"], "rl_method": "a2c", "net": "lstm", "backend": "pytorch", "start_date": "20160104", "end_date": "20181228", "lr": 0.0001, "discount_factor": 0.7, "balance": 100000000} 0%| | 0/100 [00:00<?, ?it/s]C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Loss.cu:115: block: [5,0,0], thread: [0,0,0] Assertion input_val >= zero && input_val <= one failed. C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Loss.cu:115: block: [5,0,0], thread: [1,0,0] Assertion input_val >= zero && input_val <= one failed. C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Loss.cu:115: block: [5,0,0], thread: [2,0,0] Assertion input_val >= zero && input_val <= one failed. C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Loss.cu:115: block: [5,0,0], thread: [3,0,0] Assertion input_val >= zero && input_val <= one failed. C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Loss.cu:115: block: [5,0,0], thread: [4,0,0] Assertion input_val >= zero && input_val <= one failed. C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Loss.cu:115: block: [5,0,0], thread: [5,0,0] Assertion input_val >= zero && input_val <= one failed. C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Loss.cu:115: block: [5,0,0], thread: [6,0,0] Assertion input_val >= zero && input_val <= one failed. C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Loss.cu:115: block: [5,0,0], thread: [7,0,0] Assertion input_val >= zero && input_val <= one failed. C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Loss.cu:115: block: [5,0,0], thread: [8,0,0] Assertion input_val >= zero && input_val <= one failed. C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Loss.cu:115: block: [5,0,0], thread: [9,0,0] Assertion input_val >= zero && input_val <= one failed. C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Loss.cu:115: block: [5,0,0], thread: [10,0,0] Assertion input_val >= zero && input_val <= one failed. C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Loss.cu:115: block: [5,0,0], thread: [11,0,0] Assertion input_val >= zero && input_val <= one failed. C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Loss.cu:115: block: [5,0,0], thread: [12,0,0] Assertion input_val >= zero && input_val <= one failed. C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Loss.cu:115: block: [5,0,0], thread: [13,0,0] Assertion input_val >= zero && input_val <= one failed. C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Loss.cu:115: block: [5,0,0], thread: [14,0,0] Assertion input_val >= zero && input_val <= one failed. C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Loss.cu:115: block: [5,0,0], thread: [15,0,0] Assertion input_val >= zero && input_val <= one failed. C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Loss.cu:115: block: [5,0,0], thread: [16,0,0] Assertion input_val >= zero && input_val <= one failed. C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Loss.cu:115: block: [5,0,0], thread: [17,0,0] Assertion input_val >= zero && input_val <= one failed.



C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Loss.cu:115: block: [2,0,0], thread: [58,0,0] Assertion `input_val >= zero && input_val <= one` failed.
C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Loss.cu:115: block: [2,0,0], thread: [59,0,0] Assertion `input_val >= zero && input_val <= one` failed.
C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Loss.cu:115: block: [2,0,0], thread: [60,0,0] Assertion `input_val >= zero && input_val <= one` failed.
C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Loss.cu:115: block: [2,0,0], thread: [61,0,0] Assertion `input_val >= zero && input_val <= one` failed.
C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Loss.cu:115: block: [2,0,0], thread: [62,0,0] Assertion `input_val >= zero && input_val <= one` failed.
C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Loss.cu:115: block: [2,0,0], thread: [63,0,0] Assertion `input_val >= zero && input_val <= one` failed.
  0%|                                                                                                                 | 0/100 [00:02<?, ?it/s]
Traceback (most recent call last):
  File "main.py", line 156, in <module>
    learner.run(learning=learning)
  File "D:\Investment\AI-Trader-test\rltrader QuantyLab\rltrader-3.0\quantylab\rltrader\learners.py", line 297, in run
    self.fit()
  File "D:\Investment\AI-Trader-test\rltrader QuantyLab\rltrader-3.0\quantylab\rltrader\learners.py", line 182, in fit
    loss += self.policy_network.train_on_batch(x, y_policy)
  File "D:\Investment\AI-Trader-test\rltrader QuantyLab\rltrader-3.0\quantylab\rltrader\networks\networks_pytorch.py", line 168, in train_on_batch
    return super().train_on_batch(x, y)
  File "D:\Investment\AI-Trader-test\rltrader QuantyLab\rltrader-3.0\quantylab\rltrader\networks\networks_pytorch.py", line 83, in train_on_batch
    loss += _loss.item()
RuntimeError: CUDA error: device-side assert triggered
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.

(py36_rltrader30) D:\Investment\AI-Trader-test\rltrader QuantyLab\rltrader-3.0>
quantylab commented 1 year ago

Legacy 버전을 모두 유지보수하기 어려운 상황이라 v3 사용을 권장 드립니다.