2

私は、pretrained keras vgg19モデルに以下の形のデータを収めようとしています。keras vgg 16 shape error

画像入力形状が(32383, 96, 96, 3) ラベル形状が(32383, 17) ですし、私はこのエラー

expected block5_pool to have 4 dimensions, but got array with shape (32383, 17) 
この行で

model.fit(x = X_train, y= Y_train, validation_data=(X_valid, Y_valid), 
       batch_size=64,verbose=2, epochs=epochs,callbacks=callbacks,shuffle=True) 

は、ここで私は

model = VGG16(include_top=False, weights='imagenet', input_tensor=None, input_shape=(96,96,3),classes=17) 

私のモデルを定義する方法のGotどうやって maxpoolは私に2Dテンソルを与えますが、4Dテンソルは与えませんか?私はkeras.applications.vgg16の元のモデルを使用しています。このエラーを修正するにはどうすればよいですか?

+0

興味深い。この問題は、[ここ](https://github.com/fchollet/keras/blob/master/keras/applications/vgg16.py#L136)のどこかから来る必要があります。 – displayname

答えて

2

問題はVGG16(include_top=False,...)から発生します。これは、ソリューションがVGGの畳み込み部分のみを読み込むようにするためです。このため、Kerasは、4次元の2次元出力insted(4つの次元は、畳み込み出力が(nb_of_examples, width, height, channels)の形をしていることに由来しています)を得ていると不満を抱いています。 FlattenGlobalMaxPooling2DGlobalAveragePooling2DDense層のセットを使用するなどにより(2d 1に - - である必要があり、最終的なものも含め、あなたがいずれかのinclude_top=Trueを設定したり、畳み込み部分を潰すます追加の層を追加する必要があり、この問題を克服するために、 Dense、サイズは17、softmax活性化機能)。

関連する問題