Wie wird die rezeptive Feldgröße berechnet?

8

Ich lese über die Verwendung von CNN (Convolutional Neuronal Network) zur Objekterkennung.

Umfangreiche Feature-Hierarchien für genaue Objekterkennung und semantische Segmentierung

Hier ist ein Zitat über das rezeptive Feld:

%Vor%

Meine Fragen sind:

  1. Was ist die Definition des rezeptiven Feldes?
  2. Wie berechnen sie Größe und Ort des rezeptiven Feldes?
  3. Wie können wir mit Hilfe von CaffE / Pycaffe die Grenzfläche des rezeptiven Feldes berechnen?
mrgloom 23.02.2016, 16:11
quelle

5 Antworten

5

1) Es ist die Größe der Pixelfläche, die sich auf die Ausgabe der letzten Faltung auswirkt.

2) Berechnen Sie für jede Faltung und jeden Pooling die Größe der Ausgabe. Finden Sie nun die Eingabegröße, die zu einer Ausgabegröße von 1x1 führt. Das ist die Größe des rezeptiven Feldes

3) Sie müssen dafür keine Bibliothek verwenden. Für jedes 2x2-Pooling wird die Ausgabegröße entlang jeder Dimension um die Hälfte reduziert. Für Schrittwindungen teilen Sie auch die Größe jeder Dimension durch den Schritt. Je nachdem, ob Sie Padding für Ihre Faltungen verwenden, müssen Sie möglicherweise etwas von der Dimension abrasieren. Der einfachste Fall ist die Verwendung von padding = floor (Kerngröße / 2), so dass eine Faltungsdosis keine zusätzliche Änderung der Ausgabegröße hat.

    
Raff.Edward 23.02.2016, 16:28
quelle
4

Wie oben, mit möglicherweise korrekter Berechnung von RF:

%Vor%     
Dushyant Mehta 02.07.2016 23:30
quelle
3

Hier ist eine weitere Möglichkeit, das rezeptive Feld direkt zu berechnen. Stackoverflow unterstützt keine math formula. Eine besser lesbare Version finden Sie in Ссылка

Das rezeptive Feld (RF) $ l_k $ der Schicht $ k $ ist:

%Vor%

wobei $ l_ {k-1} $ das rezeptive Feld der Ebene $ k-1 $ ist, $ f_k $ die Filtergröße (Höhe oder Breite, aber angenommen, sie sind hier gleich), und $ s_i $ ist der Schritt der Schicht $ i $.

Die obige Formel berechnet das rezeptive Feld von unten nach oben (aus der Ebene 1). Intuitiv deckt RF in der Schicht $ k $ $ (f_k - 1) * s_ {k-1} $ mehr Pixel ab relativ zur Ebene $ k-1 $. Allerdings muss das Inkrement in die erste Schicht, so dass die Inkremente eine Fakultät ist --- ein Schritt in der Schicht $ k-1 $ ist exponentiell mehr Schritte in den unteren Schichten.

Ich hoffe, das ist hilfreich.

    
Shawn Lee 11.02.2017 14:28
quelle
2

Hier ist das Python-Skript, das neben dem Schritt und der Größe der Ausgabe auch die RF-Größe berechnet.

%Vor%     
GieBur 26.02.2016 20:16
quelle
0

Tensorflow unterstützt nun die rezeptive Feldberechnung, indem einfach tf.contrib.receptive_field

verwendet wird

Siehe Ссылка für Details.

    
André Araujo 08.01.2018 19:50
quelle