一层卷积中有多少个参数

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

 

posted on 2019-11-18 22:50  江南烟雨尘  阅读(1584)  评论(0编辑  收藏  举报

导航