簡體   English   中英

ValueError:模型輸出“Tensor(“activation_1/Identity:0”, shape=(?, 3), dtype=float32)”的形狀無效

[英]ValueError: Model output "Tensor("activation_1/Identity:0", shape=(?, 3), dtype=float32)" has invalid shape

我正在嘗試運行以下 github 代碼進行股市預測:

https://github.com/multidqn/deep-q-trading

使用他們的說明,我在安裝所需的庫后運行以下命令:

python main.py 3 0 results_folder

但是,當我運行上述命令時,出現以下錯誤:

Using TensorFlow backend.
WARNING:tensorflow:From /Users/anisschohra/.local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:68: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.

WARNING:tensorflow:From /Users/anisschohra/.local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:508: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.

WARNING:tensorflow:From /Users/anisschohra/.local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:3837: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.

Traceback (most recent call last):
  File "main.py", line 92, in <module>
    ensembleFolderName=sys.argv[3]
  File "/Users/anisschohra/deep-q-trading/deepQTrading.py", line 68, in __init__
    enable_double_dqn=True,enable_dueling_network=True)
  File "/Users/anisschohra/.local/lib/python3.7/site-packages/rl/agents/dqn.py", line 107, in __init__
    raise ValueError(f'Model output "{model.output}" has invalid shape. DQN expects a model that has one dimension for each action, in this case {self.nb_actions}.')
ValueError: Model output "Tensor("activation_1/Identity:0", shape=(?, 3), dtype=float32)" has invalid shape. DQN expects a model that has one dimension for each action, in this case 3.

你能幫我解決問題並成功運行代碼嗎? 我一直在尋找錯誤,但沒有找到有效的解決方案。 他們的代碼(main.py)中的模型架構如下:

model = Sequential()
model.add(Flatten(input_shape=(1,1,68)))
model.add(Dense(35,activation='linear'))
model.add(LeakyReLU(alpha=.001))
model.add(Dense(nb_actions))
model.add(Activation('linear'))

提前致謝。

我和你有同樣的問題,我對 RL 不太熟悉,但我想我已經找到了原因。

if list(model.output.shape) != list((None, self.nb_actions)):
     raise ValueError(f'Model output "{model.output}" has invalid shape. DQN expects a model that has one dimension for each action, in this case {self.nb_actions}.')

根據回溯,這是導致問題的代碼。 您的模型的輸出形狀是一個張量對象,因此 list(model.output.shape) 將類似於 [Dimension(None), Dimension(3)],但 list((None, self.nb_actions)) 是 [None, 3],所以會被判斷為不同。

所以我認為如果有一種方法可以將模型輸出的形狀轉換為 numpy 或列表對象,我們可以解決這個問題。 對不起我糟糕的英語!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM