簡體   English   中英

TensorFlow CNN 不兼容形狀:4D 輸入形狀

[英]TensorFlow CNN Incompatible Shapes: 4D input shape

我有以下形式的樣本數據: Data[n][31][31][5][2] 與:

  • “[n]”是樣本
  • “[31][31]”是數據點數組
  • “[5]”是該數據點內的位數
  • 並且“[2]”是位的單熱編碼(例如,位 1 將是 [1, 0] 和零 [0, 1])

output 旨在成為 [5][2] 或 [10] 值數組,可針對另一個 [5][2] 或 [10] 數組進行驗證。 嘗試構建 model 時,出現以下錯誤:

 "ValueError: Shapes (None, 5, 2) and (None, 10) are incompatible"

model 代碼如下所示: (with train_m[n][31][31][5][2], tr_m[5][2], check_m[n][31][31][5][2] , cr_m[5][2] 是訓練數據和預期 output 后跟驗證數據和預期 output。)

model = Sequential([
    Conv2D(num_filters, filter_size, input_shape=(31, 31, 5, 2)),
    Flatten(),
    Dense(10, activation='relu'),
])


model.compile(
  'adam',
  loss='categorical_crossentropy',
  metrics=['accuracy'],
)

model.summary()
model.fit(
    train_m,
    tr_m,
    epochs=(100),
    validation_data=(check_m, cr_m),
    verbose=0
)

由於 [5][2] 輸出是單一的,我不確定它們是否可以在被正確解釋的同時被制成 [10] 矩陣。 此外,是否有任何方法可以使密集層成為 [5][2]?

完整的錯誤可以在這里看到。 我覺得在這里包含在 rawtext 中會非常長。

如果還有什么需要,請告訴我——我對使用 TensorFlow 還是很陌生。

您的 label 形狀是 (5,2) 但網絡 output 是 (10,) 所以這很混亂。 output 形狀和 label 形狀應該相同。 利用:

tf.keras.layers.Reshape((5,2))

在密集層之后。 你會沒事的

暫無
暫無

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

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