ValueError:输入0与层conv1d_1不兼容:预期ndim = 3,找到ndim = 4

用户名

我正在使用Keras提供的conv1d层为序列数据构建预测模型。我就是这样

model= Sequential()
model.add(Conv1D(60,32, strides=1, activation='relu',padding='causal',input_shape=(None,64,1)))
model.add(Conv1D(80,10, strides=1, activation='relu',padding='causal'))
model.add(Dropout(0.25))
model.add(Conv1D(100,5, strides=1, activation='relu',padding='causal'))
model.add(MaxPooling1D(1))
model.add(Dropout(0.25))
model.add(Dense(300,activation='relu'))
model.add(Dense(1,activation='relu'))
print(model.summary())

但是,调试信息有

Traceback (most recent call last):
File "processing_2a_1.py", line 96, in <module>
model.add(Conv1D(60,32, strides=1, activation='relu',padding='causal',input_shape=(None,64,1)))
File "build/bdist.linux-x86_64/egg/keras/models.py", line 442, in add
File "build/bdist.linux-x86_64/egg/keras/engine/topology.py", line 558, in __call__
File "build/bdist.linux-x86_64/egg/keras/engine/topology.py", line 457, in assert_input_compatibility
ValueError: Input 0 is incompatible with layer conv1d_1: expected ndim=3, found ndim=4

训练数据和验证数据的形状如下

('X_train shape ', (1496000, 64, 1))
('Y_train shape ', (1496000, 1))
('X_val shape ', (374000, 64, 1))
('Y_val shape ', (374000, 1))

我认为input_shape第一层的设置不正确。如何设置?


更新:使用以后input_shape=(64,1),即使模型摘要始终运行,我也收到以下错误消息

________________________________________________________________
Layer (type)                 Output Shape              Param #
=================================================================
conv1d_1 (Conv1D)            (None, 64, 60)            1980
_________________________________________________________________
conv1d_2 (Conv1D)            (None, 64, 80)            48080
_________________________________________________________________
dropout_1 (Dropout)          (None, 64, 80)            0
_________________________________________________________________
conv1d_3 (Conv1D)            (None, 64, 100)           40100
_________________________________________________________________
max_pooling1d_1 (MaxPooling1 (None, 64, 100)           0
_________________________________________________________________
dropout_2 (Dropout)          (None, 64, 100)           0
_________________________________________________________________
dense_1 (Dense)              (None, 64, 300)           30300
_________________________________________________________________
dense_2 (Dense)              (None, 64, 1)             301
=================================================================
Total params: 120,761
Trainable params: 120,761
Non-trainable params: 0
_________________________________________________________________
None
Traceback (most recent call last):
  File "processing_2a_1.py", line 125, in <module>
    history=model.fit(X_train, Y_train, batch_size=batch_size, validation_data=(X_val,Y_val), epochs=nr_of_epochs,verbose=2)
  File "build/bdist.linux-x86_64/egg/keras/models.py", line 871, in fit
  File "build/bdist.linux-x86_64/egg/keras/engine/training.py", line 1524, in fit
  File "build/bdist.linux-x86_64/egg/keras/engine/training.py", line 1382, in _standardize_user_data
  File "build/bdist.linux-x86_64/egg/keras/engine/training.py", line 132, in _standardize_input_data
ValueError: Error when checking target: expected dense_2 to have 3 dimensions, but got array with shape (1496000, 1)
格言

您应该更改input_shape

input_shape=(64,1)

...或使用batch_input_shape

batch_input_shape=(None, 64, 1)

该讨论详细解释了喀拉拉邦两者之间的区别。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Keras ValueError:输入0与层conv2d_1不兼容:预期的ndim = 4,找到的ndim = 5

ValueError:输入0与层conv1d_1不兼容:预期ndim = 3,找到的ndim = 2

ValueError:输入0与层lstm_13不兼容:预期ndim = 3,找到的ndim = 4

Keras Conv2D-ValueError:层顺序的输入0与该层不兼容::预期的min_ndim = 4,找到的ndim = 3

ValueError:conv2d_10层的输入0与该层不兼容:预期ndim = 4,找到的ndim = 3。收到的完整图形:[无,100、100]

Keras ValueError:输入0与层conv_lst_m2d_16不兼容:预期ndim = 5,找到ndim = 4

ValueError: 层 conv2d_46 的输入 0 与层不兼容:预期 min_ndim=4,发现 ndim=3。收到完整形状:(无、64、64)

ValueError:conv3d_8层的输入0与该层不兼容::预期的min_ndim = 5,找到的ndim = 4。收到的完整形状:[无,4,150,150]

输入 0 与层 conv2d_121 不兼容:预期 ndim=4,发现 ndim=5

keras:ValueError:输入0与层卷积不兼容2d_11:预期的ndim = 4,找到的ndim = 2

层 conv1d_1 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=2。收到的完整形状:[无,200]

ValueError:连续图层_1的输入0与以下图层不兼容::预期的min_ndim = 4,找到的ndim = 3。收到完整的图形:[无,256、256]

ValueError:sequence_9层的输入0与该层不兼容::预期的min_ndim = 4,找到的ndim = 3。收到完整形状:[无,无,无]

ValueError:sequence_6层的输入0与该层不兼容:预期ndim = 4,找到的ndim = 3。收到的完整形状:[32、28、28]

ValueError:输入0与lstm_1层不兼容:预期ndim = 3,找到的ndim = 2 [keras]

ValueError:输入0与层lstm_2不兼容:预期ndim = 3,找到的ndim = 4-多元时间序列数据

图层的输入不兼容(ndim = 4,找到的ndim = 3)

层 lstm_11 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=4。收到完整形状:[无、5000、1、6]

ValueError:输入0与图层layer_1不兼容:预期ndim = 3,找到的ndim = 2

ValueError:层顺序的输入0与层不兼容::预期的min_ndim = 4,找到的ndim = 2。收到完整的形状:[无,2584]

max_pooling2d层的输入0与该层不兼容:预期ndim = 4,找到的ndim = 5。收到完整的图形:[无,4、10、8、32]

ValueError: 层序列 2 的输入 0 与层不兼容:预期 min_ndim=4,发现 ndim=3。收到完整形状:(10, 300, 3)

ValueError:输入0与层lstm_15不兼容:预期ndim = 3,找到ndim = 2

ValueError: 层 lstm_28 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=4。收到的完整形状:[无、50、21、8]

ValueError: 层 lstm 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=4。收到完整形状:(无、32、24、7)

Tensorflow 说 conv2d 层的 Input 0 与该层不兼容:expected ndim=4, found ndim=3

Tensorflow Practice Specialization - 层顺序的输入 0 与层不兼容:预期 ndim=4,发现 ndim=5

层“conv1d_3”的输入 0 与层不兼容:预期 min_ndim=3,发现 ndim=2。收到的完整形状:(无,3)

Keras:ValueError:图层sequence_1的输入0与该图层不兼容:预期的ndim = 3,找到的ndim = 2