import torch.nn as nn conv = nn.Conv2d(2, 3, 4) print(conv.weight.size()) print(conv.bias.size())
torch.Size([3, 2, 4, 4])
torch.Size([3])
所以,每一層卷積的參數總量為:3*2*4*4+2 [輸入通道數*輸出通道數*卷積核大小+bias(輸出通道數)]
bias=0,如果設置bias=False
要計算輸出feature map中的每一個通道,需要用該通道對應的卷積核去跟輸入的feature map做運算,因為輸入的feature map同一通道的計算是共享卷積核參數的,所以計算輸出feature map中的每一個通道需要的參數量是:輸入通道數*卷積核的長*寬
所有weight就是:輸入通道數*卷積核的長*寬*輸出的通道數,bias是每個輸出通道一個O
總共就是3*2*4*4+2 啦
conv2d( in_channels =I , out_channels = O) 有O乘I個filter(O組filters,每組I 個)對輸入進行濾波。即每次有一組里I個filter對原I個channels分別進行濾波最后相加輸出一個結果,最后輸出O個結果即feature map
實驗驗證可以參看:https://blog.csdn.net/qq_19094871/article/details/97533077