目录
一、多输入输出通道
1、之前说的图片都是灰度,但是现实是RGB三通道的彩色图片,怎么办?
2、那你每层给一个卷积核,每个卷积核和每一层遍历,然后得到结果相加
3、给你个累加公式看看 c是第几个通道,不管输入是几个通道,输出都是单通道
4、上面说只输出一个通道,但是,你还要研究多个输出通道哇,这里有点不懂。这里多了几个三维卷积核C(o),最后输出也是多个
一个通道包含类似的可以提取相同特征的核吧 一个通道负责一种特征,比如一个核提取边缘信息,一个核提取另一种信息
5、多个输出通道,采用的不同核,就是识别一个特定的特征
6、我又不理解了
输入是三通道,输出是两通道
两个核
第一个核,与X进行互相关计算,这第一个核的每层与X的每层的每个元素进行计算,然后相加,
k00 * x00 + k10 * x10 + k20 * x20 得到第0层的第0个值
k00 * x01 + k10 * x11 + k20 * x21 得到第0层的第1个值
k00 * x02 + k10 * x12 + k20 * x22 得到第0层的第2个值
以此类推
7、这么想,最后输出mw*mh个点,有co通道,实际有Co*mh*mw个点,卷积核kw*kh乘加操作, 有ci个通道, Ci*Kw*Kh次乘法操作
8、总结,最后得到的是一个四维的张量
二、代码实现
zip函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
这里的sum是个函数吧,前面的sum是方法
torch.stack():沿着一个新维度对输入张量序列进行连接,序列中所有的张量都应该为相同形状
1是1*1的卷积,2是前面的那个多输出通道的公式,因为K他俩都是一样的,所以也可以说都是1*1的卷积,只是有y1拉成了向量而已,没多大区别
1X1的核,相当于将图片在每个chanel下被拉成了向量,chanel变batch_size