次のレイヤーで始まる深いネットワークをトレーニングしたいと思います。
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)))
?
入力データ配列に次の変換を適用するだけです。
input_data = input_data.reshape((-1, image_side1, image_side2, channels))
実際にデータを順序付ける方法に依存します。最初にチャネルを基準にする場合、データを再形成する必要があります:x_train = x_train.reshape(x_train.shape [0]、channel、width、height)
そのチャネルが最後の場合:x_train = s_train.reshape(x_train.shape [0]、width、height、channel)