Kerasを使用してデータをニューラルネットワークに 'フロー'しようとしています。私は.flow_from_directoryメソッドを使用しています。プロセスは私に合っています。私は長い間の周りいじりと発見されているImageDataGeneratorを使用したKerasディメンションの不一致
Exception: Error when checking model target: expected convolution2d_84 to have 4 dimensions, but got array with shape (32, 1)
:私は次のエラーを取得する
これを実行するROWS = 64
COLS = 64
CHANNELS = 3
from keras.preprocessing.image import ImageDataGenerator
train_datagen = ImageDataGenerator(
rescale=1./255)
test_datagen = ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory(
'train',
target_size=(64, 64),
batch_size=32,
class_mode='binary')
validation_generator = test_datagen.flow_from_directory(
'../tutorial/l1/kaggle_solutions/dogs_vs_cats/valid',
target_size=(64, 64),
batch_size=1,
class_mode='binary')
from keras.models import Sequential
from keras.layers import Convolution2D
from keras.layers import Dense, Activation, Flatten, Dropout, MaxPooling2D
from keras.regularizers import l2
model = Sequential()
model.add(Convolution2D(4, 4, 4, border_mode='same', input_shape=(64, 64,3), activation='relu'))
from keras.utils.np_utils import to_categorical
from keras.optimizers import SGD, RMSprop
model.compile(loss='binary_crossentropy', optimizer=RMSprop(lr=1e-4), metrics=['accuracy'])
model.fit_generator(
train_generator,
samples_per_epoch=2500,
nb_epoch=20,
validation_data=validation_generator,
nb_val_samples=3100)
:私はkerasドキュメント(私はtensorflowを使用しています)からの基本的な例を使用しています次のようにして 'model.add'をグレースケール入力に切り替える model.add(Convolution2D(4,4,4、border_mode = 'same'、input_shape =(64、64,3)、activation = 'relu')) は次のようなエラーを表示します(予想どおり、元の入力が正しいことを確認しているようです):
Error when checking model input: expected convolution2d_input_49 to have shape (None, 64, 64, 1) but got array with shape (32, 64, 64, 3)
元のまま32 -64,64,3の4-d配列を渡していますが、エラーが発生しています。 予想(1,64,64、 3)とgot(32,64,64,3)
私は32のバッチでデータを送信しています。奇妙なことにバッチをゼロに設定しても(0,64,64,3の入力を与えるために)私は(fit_generatorを使用したとき、私はモデルにバッチサイズを渡すことはできません、それはそのBATCH_SIZE表示されます - ドキュメントに基づいて、私はモデルにデータを流すための適切な方法を把握することはできません
Exception: Error when checking model target: expected convolution2d_87 to have 4 dimensions, but got array with shape (0, 1)
:取得〜の数サンプル)が問題です。
ご協力いただければ幸いです。
ザッツを、私は私のネットの私のトップ層を食い物にしていたし、ちょうど(私が言ったように、私はとてもイライラした)ことを確認されました。結局、私は自分の発電機を "バイナリ"から "カテゴリー"に切り換えて、カーネルを再起動しなければなりませんでした(古いものです)。今でもバイナリは動作しませんが、正しく入力すると、入力シェイプと関係があります。私はこの答えを「受け入れる」と答えているが、それは問題であったラベルだが「入力」だった。私はあなたにこれを見ていただきありがとうございます。約fit_generatorの例はあまりありません。私の例を待っているかわいそうにグループがあります – RDS