すべてのソリューションを確認しましたが、それでも同じエラーに直面しています。私のトレーニング画像の形状は(26721、32、32、1)で、これは4次元だと思いますが、エラーが5次元であることを示す理由がわかりません。
_ model = Sequential()
model.add(Convolution2D(16, 5, 5, border_mode='same',
input_shape= input_shape ))
_
だからこれは私がmodel.fit_generatorを定義する方法です
model.fit_generator(train_dataset, train_labels, nb_Epoch=epochs, verbose=1,validation_data=(valid_dataset, valid_labels), nb_val_samples=valid_dataset.shape[0],callbacks=model_callbacks)
誰でもこれを手伝ってくれますか?
問題は_input_shape
_です。
実際には3つのディメンションのみが含まれている必要があります。また、内部的にkerasはバッチディメンションを追加して4にします。
おそらく_input_shape
_を4次元(バッチを含む)で使用したため、kerasは5番目を追加しています。
input_shape=(32,32,1)
を使用する必要があります。
ここでは、CNNが2dとして使用されるたびに"channels_first"を確認する必要があります。また、train_dataとテストデータを次のように変更します。
if K.image_data_format() == 'channels_first': #check for channels_first
train_img.reshape(train_img.shape[0],1,x,x)
Input_shape=(1,x,x) #In your case x is 32
else:
train_img.reshape(train_img.shape[0],x,x,1)
Input_shape=(x,x,1)
問題は_input_shape
_にあります。グレースケールイメージで作業していることをkerasに知らせるために、余分なディメンション/チャネルを追加してみてください。つまり、-> _1
_
input_shape= (56,56,1)
。おそらく、通常のディープラーニングモデルを使用している場合、問題は発生しませんが、Convnetでは発生します。