0
ポップ()の後に動作します。しかし、keras - モデルは文句を言わない私は、標準ResNet50モデル取った
top_model = Sequential()
top_model.add(Flatten(input_shape=model.output_shape[1:]))
top_model.add(Dense(256, activation='relu'))
top_model.add(Dropout(0.5))
top_model.add(Dense(2, activation='softmax'))
model = Model(input=model.input, output=top_model(model.output))
それは素晴らしい作品。この方法:
model = keras.applications.resnet50.ResNet50(include_top=False,
weights='imagenet',
classes=10,
input_shape=(224, 224, 3))
をそして、私自身のいくつかの緻密層を追加しました私はmodel.pop()
kerasで最後の緻密でドロップアウト層を削除したい場合、文句を言わないうまく機能:
model.layers[-1].layers
[<keras.layers.core.Flatten at 0x16b5c00b8>,
<keras.layers.core.Dense at 0x16b5c0320>,
<keras.layers.core.Dropout at 0x16b5c02e8>,
<keras.layers.core.Dense at 0x16b5c0d68>]
model.layers[-1].pop()
model.layers[-1].pop()
model.layers[-1].layers
[<keras.layers.core.Flatten at 0x1ae6e5940>,
<keras.layers.core.Dense at 0x1ae6e9e10>]
model.layers[-1].outputs = [model.layers[-1].layers[-1].output]
model.outputs = model.layers[-1].outputs
model.layers[-1].layers[-1].outbound_nodes = []
をそれから私はちょうどモデルをコンパイルし、予測しようとすると、私はエラーを取得する:
You must feed a value for placeholder tensor 'flatten_7_input_12' with dtype float and shape [?,1,1,2048]
私の最後の層は、モデルそのものです。私が 'model.pop'を呼び出すと、Denseレイヤー、ドロップアウトとFlattenの両方がポップされます。私は最後の高密度とドロップアウトをポップしたいだけです。 回答する前に質問をお読みください –
最後のレイヤー自体が順次モデルであることを理解しています。ただし、順次モデルでmodel.pop()を使用する場合は、出力を手動で設定する必要はありません。私の拡張答えをチェックしてください。 – AHA