2017-05-03 9 views
0

Ich möchte wissen, ob die Gewichte der Filter in einer, zum Beispiel, 2D-Faltungsschicht in Keras entlang der räumlichen Dimensionen standardmäßig geteilt werden. Wenn ja, gibt es eine Möglichkeit, keine gemeinsamen Gewichte zu haben?Gewichte in Faltungsschichten in Keras

+0

Geteilt zwischen was? was genau meinst du? Es ist eine Faltung ... Verschiedene Filter haben unterschiedliche Gewichte und sie behalten das gleiche Gewicht für jede Matrix-Multiplikation ... –

Antwort

1

Ich bin mir nicht klar, was Ihr fragen aber:

Die Gewichte in der eine einzige Faltungsschicht gemeinsam genutzt werden. Das heißt, die Filter teilen mit jedem Schritt die gleichen Gewichte.

Allerdings sind die Gewichte zwischen zwei konvolutonalen Ebenen nicht standardmäßig in keras geteilt.

In den Filtern innerhalb der Conv-Schicht gibt es keine geteilten Wiegths. Seit der Ausführung der Faltung, wenn in C++ Bibliotheken ausgelagert.

Siehe diese answer zur weiteren Verfügung, insbesondere:

Die Umsetzung tf.nn.conv2d() ist in C++ geschrieben, die optimierten Code entweder mit Eigen (auf CPU) oder der cuDNN aufruft Bibliothek (unter GPU). Sie finden die Implementierung hier.

+0

Danke. Ist es möglich, unterschiedliche Gewichte für jeden Filter oder Filtersatz in einer einzigen Conv zu haben? Schicht in Keras? Angenommen, wir möchten verschiedene Funktionen an verschiedenen Stellen eines Bildes lernen. –

2

Ich fand, dass LocallyConnected2D tut, was ich suche.

Die LocallyConnected2D Schicht funktioniert ähnlich wie die Conv2D Schicht, mit der Ausnahme, dass Gewichte sind unshared, das heißt, eine andere Gruppe von Filtern an jedem unterschiedlichen Flicken des Eingangs angewendet wird.