簡體   English   中英

Keras 順序模型沒有尺寸不匹配?

[英]No dimension mismatch for Keras sequential model?

我用 Keras 創建了一個順序神經網絡,輸入為 4,輸出為 8。我意識到我所做的不正確,但我不確定為什么代碼不會引發錯誤。

print(X.shape)    # Prints (64, 4)
print(y.shape)    # Prints (64, 64, 8)

self.model.fit(X, y, batch_size=MINIBATCH_SIZE, verbose=0, shuffle=False)

那么為什么 Keras 接受一個數組數組呢? 它不應該只接受一個數組嗎?

編輯:這就是我的模型的創建方式

model = Sequential()
model.add(tf.keras.layers.InputLayer(input_shape=(4,)))
model.add(Dense(64))
model.add(Dense(Env.ACTION_SPACE, activation='linear'))             # Env.ACTION_SPACE = 8
model.compile(loss="mse", optimizer='adam', metrics=['accuracy'])

它們主要是 mariz 計算,然后通過函數擴展或減小維度,但最后一層,你可以 falttern、softmax 或總結成你想要的形狀。 您可以從訓練批次或預測中看到,它返回一組輸出,其中您看到批次號大於 1 或預測打印以查看輸出結果,其中它們是您從 np.max 或 softwax 或附加網絡搜索的答案堆棧的倍數。

我從這個例子中看到了你的言論

next_act = mainQ_outputs.evaluate(x=input_image, batch_size=16, max_queue_size=10, workers=16 )

或者你也可以這樣做

predictions = model.predict(obs, batch_size=32)

樣本輸出:

### ( 1 ): Q-Networks
model = models.Sequential()         
    for layer in mainQ_outputs: 
     model.add(layer)
     model.add(tf.keras.layers.Flatten() )
     model.add(tf.keras.layers.Dense(6, activation=tf.nn.softmax))

### ( 2 ): predictions[0] - predictions[31]
action = np.argmax(predictions[0])  
action = actions_name[action]

...

目標運動預測(一)

目標運動預測(二)

暫無
暫無

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

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