我正在使用手写字符进行分类,并遵循我的CNN模型。 我已将图像转换为灰度并进行了二值化。 我该如何解决这个问题?
model = models.Sequential()
model.add(layers.Conv2D(filters=10,kernel_size=(3,3),padding = 'same', input_shape=(100, 100, 3),activation = 'relu'))
model.add(layers.Conv2D(30,(5,5),activation='relu'))
model.add(layers.MaxPooling2D(pool_size=(2,2)))
model.add(layers.Dropout(0.5))
model.add(layers.Conv2D(40,(3,3),activation='relu'))
model.add(layers.Conv2D(60,(3,3),activation='relu'))
model.add(layers.MaxPooling2D(pool_size=(2,2)))
model.add(layers.Flatten())
model.add(layers.Dense(180,activation='relu'))
model.add(layers.Dropout(0.5))
model.add(layers.Dense(100,activation='relu'))
model.add(layers.Dense(12,activation='softmax'))
错误
ValueError: Input 0 of layer sequential_41 is incompatible with the layer: expected ndim=4, found ndim=3. Full shape received: [None, 100, 100]
答案 0 :(得分:0)
在模型中,您已将输入形状声明为AttributeError: 'BlobProperties' object has no attribute 'download_blob'
。该模型期望一个3通道的图像,但是您已经说过您的输入数据是灰度的,这意味着它只有一个通道。这意味着您的输入数据的形状为(100,100,3)
,则形状仅为(100,100,1)
。添加了(100,100)
维度后,它就会变成batch_size
,这就是您遇到的错误。
将输入形状更改为[None,100,100]
应该可以解决问题。