2017-03-01 5 views
2

私は、Inception v3用に事前にトレーニングされたimagenetウェイトを使用してCIFAR10イメージを分類しようとしています。私は次のコードを使用しています。ケアでinceptionv3にcifar10を入力する方法

from keras.applications.inception_v3 import InceptionV3 

(xtrain, ytrain), (xtest, ytest) = cifar10.load_data() 

input_cifar = Input(shape=(32, 32, 3)) 

base_model = InceptionV3(weights='imagenet', 
         include_top=False, 
         input_tensor=input_cifar) 

しかし、それは私の中間CONV層での「負の次元」のようなエラーが発生します。

これはVGG16ネットワークを使用しているときは発生しません。

テンソルフローバックエンドとtf dim ordernigのケラスを使用しています。

答えて

1

この層のdocumentationでは、入力の最小形状が(150, 150, 3)tfの暗順応)であることがわかります。あなたの入力ははるかに小さいです。この最小サイズは、各レイヤーの出力を小さくする複数のpoolingvalidボーダーモードから来ています。もしそれが一定のサイズより小さければ、プールもコンボリューションも実行できません。

+0

あなたが気にしないなら - 私はupvoteに感謝します:) –

1

インセプションネットワークは224x224サイズの画像でトレーニングされ、そのダウンサンプリングパスは10x10以下になります。したがって、32,32,3画像の場合、ダウンサンプリングは負の次元サイズにつながります。今、あなたは複数のことをすることができます。最初に、cifar10データセット内のすべてのイメージのサイズを224x224に変更し、このテンソルを開始モデルに渡すことができます。ネットワークのいくつかのダウンサンプリングフィルタを削除することができます。それからそれはまだ動作します。第3に、解像度を変更せずに画像のサイズを大きくするためにゼロパディングを行うことができます。

+0

実際には - (150,150,3)が最小サイズです。 –

関連する問題