Dies geschieht unter Bezugnahme auf das Papier Effiziente Objektlokalisierung mithilfe von Faltungsnetzwerken. Soweit ich weiß, ist das Dropout in 2D implementiert.
Nachdem der Code von Keras zur Implementierung des räumlichen 2D-Dropouts gelesen wurde, wird im Grunde eine zufällige binäre Maske mit der Form [batch_size, 1, 1, num_channels] implementiert. Was genau bewirkt dieses räumliche 2D-Dropout jedoch für den Eingabe-Faltungsblock mit der Form [batch_size, height, width, num_channels]?
Ich gehe davon aus, dass für jedes Pixel, wenn eine der Ebenen / Kanäle des Pixels einen negativen Wert aufweist, die gesamten Kanäle dieses einen Pixels standardmäßig auf Null gesetzt werden. Ist das richtig?
Wenn meine Vermutung jedoch richtig ist, wie ergibt sich bei Verwendung einer Binärmaske mit der Form [batch_size, height, width, num_channels], die genau in der Dimension des ursprünglichen Eingabeblocks liegt, das übliche elementweise Dropout (dies entspricht dem Die ursprüngliche Dropout-Implementierung von Tensorflow, die die Form der Binärmaske als die Form der Eingabe festlegt. Da dies dann bedeuten würde, wenn ein Pixel im Conv-Block negativ ist, wird der gesamte Conv-Block standardmäßig auf 0 gesetzt. Dies ist der verwirrende Teil, den ich nicht ganz verstehe.