繁体   English   中英

输入形状总是与图层不兼容

[英]Input shapes always incompatible with layers

对于我的 model 的输入形状需要是什么样的,我感到非常困惑。 我的训练数据看起来像这样(2834, 270, 1) ,其中我有 2834 个样本,每个样本包含 270 个单独的值。 我的目标都是一个值(例如数字 2),我想训练我的 model 以准确预测给定样本的目标值(包含 270 个单独的值)这是我目前拥有的代码:

train_data = np.asarray(train_data).astype('float32')
train_data = train_data.reshape(2834, 270, 1)
train_labels = train_labels.reshape(2834)
train_data = tf.cast(train_data, dtype='float32')
train_labels = tf.cast(train_labels, dtype='float32')
print(train_data.shape)
print(train_labels.shape)

model = models.Sequential()
model.add(layers.Conv1D(64, 5, activation='relu', input_shape=(train_data.shape)))
model.add(layers.MaxPooling1D(2))
model.add(layers.Conv1D(32, 5, activation='relu'))
model.add(layers.MaxPooling1D(2))
model.add(layers.Dropout(0.2))
model.add(layers.Dense(16, activation='relu'))
model.add(layers.Dense(1, activation='linear'))
model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=1e-05), loss=tf.keras.losses.MeanSquaredError())
history = model.fit(train_data, train_labels, epochs=10, batch_size=1)
print(model.summary)

我有一个一维神经网络(因为我认为我的训练数据是一维的,可能是错误的)应该 output 是单个值,但是当我尝试拟合我的 model 时会出现错误。 它说我的其中一个图层的输入形状不正确。 完整的错误:

   ValueError: Input 0 of layer max_pooling1d_6 is incompatible with the layer: expected ndim=3, found ndim=4. Full shape received: (None, 2834, 266, 64)

改变这个:

model.add(layers.Conv1D(64, 5, activation='relu', input_shape=(train_data.shape)))

至:

model.add(layers.Conv1D(64, 5, activation='relu', input_shape=(266, 64)))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM