当我尝试运行训练模型时,出现错误了,我应该怎么做才能通过错误报告?
我的模型或整形零件有问题吗?
这是我的重塑部分
# Reshape and normalize training data
trainX = train.reshape(train.shape[0], 1, 10, 10).astype( 'float32' )
x_train = trainX / 255.0
y_train = train[:,99]
# print(y_train)
# # # Reshape and normalize test data
testX = test.reshape(test.shape[0], 1, 10, 10).astype( 'float32' )
x_test = testX / 255.0
y_test = test[:,99]
# print(y_test)
这是我的模特:
model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape=(3, 32, 32),
activation='relu', padding='same'))
model.add(Dropout(0.2))
model.add(BatchNormalization())
model.add(Conv2D(64, (3, 3), padding='same'))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.2))
model.add(BatchNormalization())
然后,如果将数据重塑为3 * 32 * 32,则出现值错误报告:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-31-36bf3e556ae8> in <module>()
----> 1 trainX = train.reshape(train.shape[0], 3, 32, 32).astype( 'float32' )
2 x_train = trainX / 255.0
3 y_train = train[:,10]
4 # print(y_train)
5 # # # Reshape and normalize test data
答案 0 :(得分:0)
训练和测试数据集的输入形状与模型不同。使用 input_shape()时,请记住所需输入的大小。在这种情况下,您的形状看起来像(1,10,10),这是一个具有1级通道/深度的10x10图像(即黑白图像)。但是,您使用的模型需要(3,32,32)形状,该形状会转换为32x32尺寸的彩色图像(即3个通道代表RGB颜色)。
因此,如果按照以下代码更改模型,则可能会起作用,但是还需要优化其他参数,例如Conv2D所需的特征图:
model.add(Conv2D(32, (3, 3), **input_shape=(1, 10, 10)**,activation='relu', padding='same'))