我有兩批長度為 64 的資料。每個索引都是一個大小為 (128, 128, 3) 的 ndarray。
我的代碼:
ae_encoder = Conv2D(32, (2,2), padding='same')(input)
ae_encoder = LeakyReLU()(ae_encoder)
ae_encoder = Conv2D(64, (3, 3), padding='same',strides =(2,2))(ae_encoder)
ae_encoder = LeakyReLU()(ae_encoder)
ae_encoder = Conv2D(128, (3, 3), padding='same',strides =(2,2))(ae_encoder)
ae_encoder = LeakyReLU()(ae_encoder)
ae_encoder = Conv2D(256, (3, 3), padding='same',strides =(2,2))(ae_encoder)
ae_encoder = LeakyReLU()(ae_encoder)
ae_encoder = Conv2D(512, (3, 3), padding='same',strides =(2,2))(ae_encoder)
ae_encoder = LeakyReLU()(ae_encoder)
ae_encoder = Conv2D(1024, (3, 3), padding='same',strides =(2,2))(ae_encoder)
ae_encoder = LeakyReLU()(ae_encoder)
#Flattening for the bottleneck
vol = ae_encoder.shape
ae_encoder = Flatten()(ae_encoder)
ae_encoder_output = Dense(Z_DIM, activation='relu')(ae_encoder)
我似乎無法找到為什么它將整批 64) 視為不同的渠道。不應該在這些批次中迭代 ndarray 嗎?
錯誤:
ValueError: Layer "model_3" expects 1 input(s), but it received 64 input tensors.
Update-1 x_train 和 y_train 都是長度為 64 的串列,每個索引的形狀為 (128, 128, 3)。

樣本輸入(輸入非常大,無法完全復制)

uj5u.com熱心網友回復:
如果您嘗試實作一個 vanilla Autoencoder,其中輸入形狀應等于輸出形狀,那么您必須將最后一個解碼器層更改為:
ae_decoder_output = tf.keras.layers.Conv2D(3, (3,3), activation='sigmoid', padding='same',strides=(1,1))(ae_decoder)
導致輸出形狀(None, 128, 128, 3)。此外,您需要確保您的資料具有 shape (samples, 128, 128, 3)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/375444.html
上一篇:tf.concat不同長度的張量
