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
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一层卷积中有多少个参数 - Python技术站