#学习视频:https://www.bilibili.com/video/BV1EX4y1V7vA?p=12&spm_id_from=pageDriver
#学习时间:2021.04.28
1是一个channel
w是绿的那个filter
相乘累加就是红的
当RGB三个channel, 那么对应w就是【3,3,3】这种形式,就是3个33的filter.这一组33的filter成为一个核。
计算方法,同单通道一样,对应位置相乘累加后,形成一个数0,那么三个页面对应位置o1 o2 o3累加
Padding && Stride
Padding:我们在进行filter时候 会发现其实画布缩小了,如果有时候要想矩阵大小不变,那么就用到Padding, 就是用0,将原画布h扩大(红箭头),那么有机会使得操作后,缩小的h’和原画布一样大
Stride: 就是一次跳几格进行想成累加,如果如图从①一步就到③这个位置,这时候stride=3
① 由上可知,对于一个5*5的c层图片,由一个核【c,3,3】可以转化成单通道输出
② 问题在于我们希望降低位置维度信息,但能增添特征维度信息
③ 我们fliter用了N个核【N,C,3,3】那么我们就输出了【b, 3, 3, N】
④ 例子来讲,任意的一个5*5多通道画【b, 5, 5, c】,通过N核filter【N, c,3, 3】可以输出【b, 3, 3, N】
N=4 也就是像输出几个通道,也就是用了4个核
input-c = 3 也就是对应输入那个图的通道数
bias
就是b 偏移量的意思,我们上题有四个核也就存在4个可以不同的一组bias,写做bias=【4】
Conv2D把Filter 说明了
- 要输出4channel
- Kernel_size 是几乘几
- strides 一次滑动几格
- 输出padding 是不是要和以前一样大
- ①②都是输出 建议用①
weight && bias
我们来看存储的形式到底是NC55还是55CN (都有可能)
- kernel就是w
- bias就是b
- 通过调用 来观察看存储的形式
另一种方法:
- 更加底层
- x w b 不会自己管理
- 21:这里面 w 随机,但形式是5534
- 22: b是和上面4对应 就是输出要4个channel,所以要四个核,每个核1个b,
- 所以四个,那么zeros 应该是b全是0
- 23:x的shape 也就是输入的形式。1个b,32*32的图,有三个channel(R,G,B)
The Gradient
Outline
Pooling
- Max pooling
- Avage pooling
Upsample
上采样 放大:
size = 2 就是放大2倍
ReLU
把负的去掉