2017-07-19 6 views
2

Ich versuche, die Ausgabe einer Schicht an eine andere Schicht in einem CNN zu übergeben und verketten, wie in der folgenden Abbildung gezeigt. 30x30x512 Layer wird nach dem Umformen mit 15x15x1024 verkettet.Wie können High-Level-Features mit Low-Level-Features in einem CNN mit Keras verkettet werden?

enter image description here

Bitte beachten Sie, dass zwei verschiedene Modelle und ihre Zusammenlegung ist nicht die Lösung, die ich gesucht habe. Ich möchte wissen, wie ich das gleiche Modell verwenden kann, um die erwähnten Ebenen zusammenzuführen.

Vielen Dank im Voraus für Ihre Vorschläge.

Antwort

2

Sie müssen die Ausgangstensoren der beiden Ebenen speichern, die Sie zusammenführen möchten. Sobald Sie diese Tensoren haben, gibt es zumindest zwei Möglichkeiten, sie zu verschmelzen:

  1. Mit Reshape Schicht, wo Sie die Ausgabeform festlegen können und die Arbeit erledigt ist.

  2. Mit tf.space_to_depth Funktion und packen es zu einer Lambda Schicht (wie es ist TensorFlow Betrieb). Dies wird möglicherweise nur verwendet, wenn Sie das TensorFlow-Backend verwenden.

Sobald Sie Ihre Ausgabe umgestalteten Sie concatenate Schicht und verschmelzen Ausgänge durch Kanäle Dimension verwenden können.

+0

Wenn Sie nichts dagegen haben, würde ich auch um ein upvote bitten. –

Verwandte Themen