Python op输入和计算输入梯度之间的形状不兼容

Python op输入和计算输入梯度之间的形状不兼容,python,numpy,tensorflow,machine-learning,keras,Python,Numpy,Tensorflow,Machine Learning,Keras,该模型在优化步骤之前运行良好。但是,当我想优化模型时,会显示错误消息: ValueError:op输入和计算输入之间的形状不兼容 坡度正向操作: 编码器27/量化层13/识别码。投入指标:1。起初的 输入形状:(?,32)。计算的输入渐变形状:() 下面是我的代码 # parameters feedback_bits = 128 img_height = 16 img_width = 32 img_channels = 2 # Model construction # encoder mode

该模型在优化步骤之前运行良好。但是,当我想优化模型时,会显示错误消息:

ValueError:op输入和计算输入之间的形状不兼容 坡度正向操作: 编码器27/量化层13/识别码。投入指标:1。起初的 输入形状:(?,32)。计算的输入渐变形状:()

下面是我的代码

# parameters
feedback_bits = 128
img_height = 16
img_width = 32
img_channels = 2

# Model construction
# encoder model
Encoder_input = keras.Input(shape=(img_height, img_width, img_channels), name="encoder_input")
Encoder_output = Encoder(Encoder_input, feedback_bits)
encoder = keras.Model(inputs=Encoder_input, outputs=Encoder_output, name='encoder')

# decoder model
Decoder_input = keras.Input(shape=(feedback_bits,), name='decoder_input')
Decoder_output = Decoder(Decoder_input, feedback_bits)
decoder = keras.Model(inputs=Decoder_input, outputs=Decoder_output, name="decoder")

# autoencoder model
autoencoder_input = keras.Input(shape=(img_height, img_width, img_channels), name="original_img")
encoder_out = encoder(autoencoder_input)
decoder_out = decoder(encoder_out)
autoencoder = keras.Model(inputs=autoencoder_input, outputs=decoder_out, name='autoencoder')
autoencoder.compile(optimizer='adam', loss='mse')
print(autoencoder.summary())

# Data loading
data_load_address = './data'
mat = h5py.File(data_load_address+'/Hdata.mat', 'r')
data = np.transpose(mat['H_train'])      # shape=(320000, 1024)
data = data.astype('float32')
data1 = np.reshape(data, [len(data), img_height,  img_width, img_channels])
x_train, x_test = sklearn.model_selection.train_test_split(data1, test_size=0.05, random_state=1)
#train
autoencoder.fit(x=x_train, y=x_train, batch_size=512, epochs=1000, validation_split=0.1)



请阅读并填写您的代码以及所有必要的复制信息(例如,什么是编码器?)