这是我的卷积神经网络
input_shape = (28,28.1)
class cnn_model(tf.keras.Model):
def __init__(self):
super(cnn_model,self).__init__()
self.conv1 = layers.Conv2D(32,(3,3),activation='relu',input_shape= input_shape)
self.maxpool = layers.MaxPool2D((2,2))
self.conv2 = layers.Conv2D(64,(3,3),activation ='relu')
self.conv3 = layers.Conv2D(64,(3,3),activation='relu')
self.flatten = layers.Flatten()
self.dense64 = layers.Dense(64,activation='relu')
self.dense10 = layers.Dense(10,activation='relu')
def call(self,inputs):
x = self.conv1(inputs)
x = self.maxpool(x)
x = self.conv2(x)
x = self.maxpool(x)
x = self.conv3(x)
x = self.flatten(x)
x = self.dense64(x)
x = self.dense10(x)
return x
我得到以下错误
model = cnn_model() print(model.call(train_data[0])) ValueError: Input 0 of layer conv2d_6 is incompatible with the layer: expected ndim=4, found ndim=3. Full shape received: [28, 28, 1]
形状是(28, 28, 1)
。在
怎么了?在
您的},它已经准备好进入模型。但是,
input_shape
参数看起来不错,所以我猜train_data[0]
没有足够的维度!可能train_data.shape
类似于{train_data[0].shape
会像(H, W, C)
一样出现,它的维数比预期的少了一个。如果你想给模型提供一个样本,你必须将train_data[0]
重塑为(1, H, W, C)
,也许可以使用NumPy的expand_dims。在相关问题 更多 >
编程相关推荐