我想从以下层开始训练深度网络:
model = Sequential() model.add(Conv2D(32, 3, 3, input_shape=(32, 32, 3)))
运用
history = model.fit_generator(get_training_data(), samples_per_epoch=1, nb_epoch=1,nb_val_samples=5, verbose=1,validation_data=get_validation_data()
使用以下生成器:
def get_training_data(self): while 1: for i in range(1,5): image = self.X_train[i] label = self.Y_train[i] yield (image,label)
(验证生成器看起来类似).
在培训期间,我收到错误:
Error when checking model input: expected convolution2d_input_1 to have 4 dimensions, but got array with shape (32, 32, 3)
怎么可能,第一层
model.add(Conv2D(32, 3, 3, input_shape=(32, 32, 3)))
?
您定义的输入形状是单个样本的形状.模型本身需要一些样本数组作为输入(即使它是一个长度为1的数组).
你的输出真的应该是4-d,第一维用于枚举样本.即对于单个图像,您应该返回(1,32,32,3)的形状.
你可以找到更多的信息在这里下的"Convolution2D" /"输入型"