在Python中使用Tensorflow构建CNN模型时出现错误

gz5pxeao  于 2023-03-09  发布在  Python
关注(0)|答案(1)|浏览(184)

我现在有一个大小的图片数据(419,128,128),这是419张图片,每张图片是128*128.我想建立一个CNN模型做一个特征选择.(附言提取128重要特征,从每张图片)这是我的代码:

import tensorflow as tf

# shape of input data
input_shape = (None, 128, 128, 1)

# Define the CNN model
model = tf.keras.Sequential([
    tf.keras.layers.Conv2D(128, 3, activation='relu', padding='same', input_shape=input_shape[1:]),
    tf.keras.layers.Conv2D(128, 4, activation='relu', padding='same'),
    tf.keras.layers.Conv2D(128, 5, activation='relu', padding='same'),

    tf.keras.layers.MaxPooling2D(),
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(128, activation='relu'),

    # Output layer, since we need to extract 128 important factors, the number of output nodes is 128
    tf.keras.layers.Dense(128, activation='sigmoid')
])

# Compile the model
model.compile(optimizer='adam', loss='mse')

# My input data is sp_pics, shape is (419,128,128)
data_input = np.expand_dims(sp_pics, axis=-1)

# Train the model
model.fit(data, data, epochs=10, batch_size=32)

# Extract the important factors
important_factors = model.predict(data)

现在,我收到以下错误消息:

就我而言,错误是由输入(419,128,128)和输出(419,128)之间的形状差异引起的。这是真的吗?我该如何修复它?
非常感谢你的帮助!!!
我试了不同的批量和不同的损失函数,但没有用

elcex8rz

elcex8rz1#

model.fit的前两个参数是xy,其中x是输入,y是标签。您使用的是model.fit(data, data,...),因此您的输入也是您的...标签?

相关问题