私はKerasを使って、ドキュメントの[this example][1]
に基づいて自動エンコーダーを構築しようとしています。データが大きいので、ジェネレータを使用してメモリに読み込まないようにしたいと考えています。私はこのエラーを取得していKeras ImageDataGeneratorが正常に動作しない
model.fit_generator(
train_generator,
samples_per_epoch=1,
nb_epoch=1,
verbose=1,
)
:
model = Sequential()
model.add(Convolution2D(16, 3, 3, activation='relu', border_mode='same', input_shape=(3, 256, 256)))
model.add(MaxPooling2D((2, 2), border_mode='same'))
model.add(Convolution2D(8, 3, 3, activation='relu', border_mode='same'))
model.add(MaxPooling2D((2, 2), border_mode='same'))
model.add(Convolution2D(8, 3, 3, activation='relu', border_mode='same'))
model.add(MaxPooling2D((2, 2), border_mode='same'))
model.add(Convolution2D(8, 3, 3, activation='relu', border_mode='same'))
model.add(UpSampling2D((2, 2)))
model.add(Convolution2D(8, 3, 3, activation='relu', border_mode='same'))
model.add(UpSampling2D((2, 2)))
model.add(Convolution2D(16, 3, 3, activation='relu'))
model.add(UpSampling2D((2, 2)))
model.add(Convolution2D(1, 3, 3, activation='sigmoid', border_mode='same'))
model.compile(optimizer='adadelta', loss='binary_crossentropy')
マイジェネレータ:
from keras.preprocessing.image import ImageDataGenerator
train_datagen = ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory('IMAGE DIRECTORY', color_mode='rgb', class_mode='binary', batch_size=32, target_size=(256, 256))
そしてモデルを適合
のように私のモデルに見える
例外:チェーのときのエラー模型のターゲット:予想される畳み込み2d_76は4つの次元を持ちますが、形状(32,1)の配列を持っています
サンプルではなく私のバッチのサイズに似ています。私は間違って何をしていますか?
大変ありがとうございます!今はすべてが正しく動作しています。私はそれが入力の形を話していると仮定していたので混乱しましたが、あなたの解決策を実装した後は、それが問題であった出力の形を見ました。 – Lester