Bei der Depthwise Convolution wird jeder Filter auf genau einem Channel ausgeführt.
Haben wir als Input ein RGB Bild: , so werden intern 3 verschiedene Filter erstellt, wobei jeder Filter exklusiv für einen der 3 Input-Channel zuständig ist.
Als Ergebnis erhalten wir (mit padding=same) drei verschiedene -Feature Maps.
Wollen wir die Anzahl der Feature Maps erhöhen, erstellen wir einfach weitere -er Filter-Paare.
Anmerkung
Snippet: Depthwise Conv in Keras und PyTorch
In Keras erhalten wir eine Depthwise Convolution durch
In PyTorch erhalten wir eine Depthwise Convolution durch
from torch import nndef count_parameters(model): return sum(p.numel() for p in model.parameters() if p.requires_grad)layer = nn.Conv2d(in_channels=3, out_channels=12, kernel_size=(3,3), groups=3)print(count_parameters(layer))# 120
wobei für Depthwise Convolution gelten muss, dass in_channels=groups.