Deep learning 其中一层的输入与卷积神经网络CNN中的预期不同
我正在使用CROHME数据集的图像来训练CNN。每个图像都有形状(45,45,1)。 我为我的模型编写的代码如下所示:Deep learning 其中一层的输入与卷积神经网络CNN中的预期不同,deep-learning,conv-neural-network,ocr,tf.keras,sequential,Deep Learning,Conv Neural Network,Ocr,Tf.keras,Sequential,我正在使用CROHME数据集的图像来训练CNN。每个图像都有形状(45,45,1)。 我为我的模型编写的代码如下所示: X\u train.shape给出此输出:(47352,45,45,1) 模型定义为: model = Sequential() model.add(Conv2D(filters = 32, kernel_size = (5,5),padding = 'Same', activation ='relu', input_shape = (45
X\u train.shape
给出此输出:(47352,45,45,1)
模型定义为:
model = Sequential()
model.add(Conv2D(filters = 32, kernel_size = (5,5),padding = 'Same',
activation ='relu', input_shape = (45,45,1)))
model.add(Conv2D(filters = 32, kernel_size = (5,5),padding = 'Same',
activation ='relu'))
model.add(MaxPool2D(pool_size=(2,2)))
model.add(Dropout(0.25))
model.add(Conv2D(filters = 64, kernel_size = (3,3),padding = 'Same',
activation ='relu'))
model.add(Conv2D(filters = 64, kernel_size = (3,3),padding = 'Same',
activation ='relu'))
model.add(MaxPool2D(pool_size=(2,2), strides=(2,2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(256, activation = "relu"))
model.add(Dropout(0.5))
model.add(Dense(num_classes, activation = "softmax"))
# Fit the model
history = model.fit(X_train,Y_train, batch_size=batch_size,
epochs = 5, validation_data = (X_val,Y_val),
verbose = 2, steps_per_epoch=X_train.shape[0] // batch_size
, callbacks=[learning_rate_reduction])
错误:
C:\Users\asmar\anaconda3\envs\myenv\lib\site-packages\tensorflow\python\keras\engine\training.py:1224 test_function *
return step_function(self, iterator)
C:\Users\asmar\anaconda3\envs\myenv\lib\site-packages\tensorflow\python\keras\engine\training.py:1215 step_function **
outputs = model.distribute_strategy.run(run_step, args=(data,))
C:\Users\asmar\anaconda3\envs\myenv\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:1211 run
return self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs)
C:\Users\asmar\anaconda3\envs\myenv\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:2585 call_for_each_replica
return self._call_for_each_replica(fn, args, kwargs)
C:\Users\asmar\anaconda3\envs\myenv\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:2945 _call_for_each_replica
return fn(*args, **kwargs)
C:\Users\asmar\anaconda3\envs\myenv\lib\site-packages\tensorflow\python\keras\engine\training.py:1208 run_step **
outputs = model.test_step(data)
C:\Users\asmar\anaconda3\envs\myenv\lib\site-packages\tensorflow\python\keras\engine\training.py:1174 test_step
y_pred = self(x, training=False)
C:\Users\asmar\anaconda3\envs\myenv\lib\site-packages\tensorflow\python\keras\engine\base_layer.py:975 __call__
input_spec.assert_input_compatibility(self.input_spec, inputs,
C:\Users\asmar\anaconda3\envs\myenv\lib\site-packages\tensorflow\python\keras\engine\input_spec.py:191 assert_input_compatibility
raise ValueError('Input ' + str(input_index) + ' of layer ' +
ValueError: Input 0 of layer sequential_7 is incompatible with the layer: : expected min_ndim=4, found ndim=2. Full shape received: [None, 2025]
模型摘要向我提供了以下信息:
[Layer (type) Output Shape Param #
=================================================================
conv2d_26 (Conv2D) (None, 45, 45, 32) 832
_________________________________________________________________
conv2d_27 (Conv2D) (None, 45, 45, 32) 25632
_________________________________________________________________
max_pooling2d_11 (MaxPooling (None, 22, 22, 32) 0
_________________________________________________________________
dropout_15 (Dropout) (None, 22, 22, 32) 0
_________________________________________________________________
conv2d_28 (Conv2D) (None, 22, 22, 64) 18496
_________________________________________________________________
conv2d_29 (Conv2D) (None, 22, 22, 64) 36928
_________________________________________________________________
max_pooling2d_12 (MaxPooling (None, 11, 11, 64) 0
_________________________________________________________________
dropout_16 (Dropout) (None, 11, 11, 64) 0
_________________________________________________________________
flatten_5 (Flatten) (None, 7744) 0
_________________________________________________________________
dense_10 (Dense) (None, 256) 1982720
_________________________________________________________________
dropout_17 (Dropout) (None, 256) 0
_________________________________________________________________
dense_11 (Dense) (None, 74) 19018
=================================================================
Total params: 2,083,626
Trainable params: 2,083,626
Non-trainable params: 0][1]
我做错了什么?你真的确定X_火车是那种形状吗?因为很明显,你最终通过了一个(2025,)形状的图像,2025=25*25*1。看起来你的X_火车在某处被压扁了。我肯定X_火车有这个形状(47352,45,45,1)。我不知道它在哪里被压扁了。