2017-11-03 9 views
1

テンソルフローで微調整する方法の例がたくさんあります。これらの例のほとんどは、既存のモデルが必要とする指定されたサイズにイメージのサイズを変更しようとしています。たとえば、224×224はvgg19が必要とする入力サイズです。しかし、kerasに、我々はfalseにinclude_topを設定することで、入力サイズを変更することができます。notopレイヤーでテンソルフローの微調整を行い、自分自身の入力イメージサイズを定義する方法

base_model = VGG19(include_top=False, weights="imagenet", input_shape=(input_size, input_size, input_channels)) 

をその後、我々はもう224×224であることを画像のサイズを修正する必要はありません。テンソルフローで公式に事前に訓練されたモデルを使用して、このような種類の微調整を行うことはできますか?私は今まで解決策を見つけることができない、誰も私を助ける?

答えて

1

はい、このような微調整が可能です。最後のいくつかのレイヤー(変更された出力を考慮に入れる)に加えて、元のネットワークの最初のいくつかのレイヤー(変更された入力を考慮して)を微調整するだけで十分です。

私はKerasを使用してTensorFlowを使用しています。あなたはそれに開いている場合は、ここでは一般的な微調整の流れを示したコードスニペットがある:

https://keras.io/applications/

具体的には、私はそれは私の場合のために動作させるために、次のコードを記述する必要がありました:

#img_width,img_height is the size of your new input, 3 is the number of channels 
input_tensor = Input(shape=(img_width, img_height, 3)) 
base_model = 
keras.applications.vgg19.VGG19(include_top=False,weights='imagenet', input_tensor=input_tensor) 
#instantiate whatever other layers you need 
model = Model(inputs=base_model.inputs, outputs=predictions) 
#predictions is the new logistic layer added to account for new classes 

これが役に立ちます。

関連する問題