Posted by Yaohong on Monday, January 1, 0001

TOC

fit x shape and y shape

# OS:Windows 10
# python version: 3.7.4
# numpy version:1.19.4
# tensorflow version:1.14.0
# keras version:2.1.5

Error

ValueError: Error when checking target: expected dense_2 to have 4 dimensions, but got array with shape (145, 11)
def simpleCNN(input_shape):
	model = Sequential()
	model.add(Conv2D(filters=256, 
							kernel_size = (3*3), 
							activation="relu",
							input_shape=input_shape,
							padding="same" ) );# output: 13*13*384
	model.add(BatchNormalization()) 
	model.add(MaxPooling2D(pool_size=(3, 3), 
								strides=(2,2), 
								padding="same"));

	model.add(Dense(512, activation='relu', ))
	model.add(Dense(11, activation='softmax'))
	# model.add(layers.Dense(11, activation='sigmoid'))
	model.compile(optimizer='rmsprop', loss='categorical_crossentropy',
	               metrics=['accuracy'])
	return model;

model summary:

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv2d_1 (Conv2D)            (None, 36, 14, 256)       20992     
_________________________________________________________________
batch_normalization_1 (Batch (None, 36, 14, 256)       1024      
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 18, 7, 256)        0         
_________________________________________________________________
dense_1 (Dense)              (None, 18, 7, 512)        131584    
_________________________________________________________________
dense_2 (Dense)              (None, 18, 7, 11)         5643      
=================================================================
Total params: 159,243
Trainable params: 158,731
Non-trainable params: 512
_________________________________________________________________

train_images.shape: (145, 36, 14, 1)
train_labels.shape (145, 11)

The problem is without Flatten()

「点个赞」

Yaohong

点个赞

使用微信扫描二维码完成支付