[动手学深度学习]卷积神经网络学习笔记
动手学深度学习-李沐(视频):19 卷积层【动手学深度学习v2】_哔哩哔哩_bilibili
动手学深度学习-李沐(网页):6. 卷积神经网络 — 动手学深度学习 2.0.0 文档 (d2l.ai)
⭐这是jupyter与torch结合的笔记!!!
未完待续
1. 从全连接层到卷积
1.1. 两个原则
(1)平移不变性:图像识别在任何像素的位置都能发挥作用

(2)局部性:无需搜索全部图像就可以获得图像的信息/关注重要的局部信息而不用关注无用的背景信息

1.2. 从全连接层到卷积层
(1)公式

2. 图像卷积
2.1. 卷积
(1)已经学了不知道多少遍了就不做笔记了
(2)例子(使用不同的卷积层可以带来不同的效果)

2.2. 交叉相关和卷积
(1)区别

卷积的a和b前有负号
(2)一维和三维交叉相关

2.3. 代码
(1)二维互相关运算
import torch
from torch import nn
from d2l import torch as d2l
def corr2d(X, K): #@save
"""计算二维互相关运算"""
h, w = K.shape
Y = torch.zeros((X.shape[0] - h + 1, X.shape[1] - w + 1))
for i in range(Y.shape[0]):
for j in range(Y.shape[1]):
"""这个h和w就是每次的小方块"""
Y[i, j] = (X[i:i + h, j:j + w] * K).sum()
return Y
(2)实现二维卷积层类
class Conv2D(nn.Module):
def __init__(self, kernel_size):
super().__init__()
self.weight = nn.Parameter(torch.rand(kernel_size))
self.bias = nn.Parameter(torch.zeros(1)) #偏移
def forward(self, x):
return corr2d(x, self.weight) + self.bias
3. 填充和步幅
3.1. 填充
(1)在周围添加额外的行/列,就可以让最后卷积出来的输出保持原样的大小(也不一定非要为了保持原样,总之比不填充要大一点)

(2)填充多行/列

①若填充p=k-1行/列(k为卷积核长宽),就可以在原式中把除了n的式子全部消去,可以保证原图经过卷积后长宽不变
②很多padding0并不会影响精度,但是可能影响性能(太多导致卷积时长增加)
3.2. 步幅
(1)概念:行/列的滑动步长(可以让卷积层少一点但是图像的长宽缩小很快)
(2)计算公式

3.3. 代码
(1)示例
import torch
from torch import nn
# 为了方便起见,我们定义了一个计算卷积层的函数。
# 此函数初始化卷积层权重,并对输入和输出提高和缩减相应的维数
def comp_conv2d(conv2d, X):
# 这里的(1,1)表示批量大小和通道数都是1
X = X.reshape((1, 1) + X.shape)
Y = conv2d(X)
# 省略前两个维度:批量大小和通道
return Y.reshape(Y.shape[2:])
# 请注意,这里每边都填充了1行或1列,因此总共添加了2行或2列
conv2d = nn.Conv2d(1, 1, kernel_size=3, padding=1)
X = torch.rand(size=(8, 8))
comp_conv2d(conv2d, X).shape
4. 多输入多输出通道
4.1. 输入通道
(1)一般三个通道,RGB
(2)转为灰度会丢失信息
(3)每个通道可以应用不同的卷积核,最后讲结果加起来

4.2. 1*1卷积层
(1)很特别,并不会将所有卷积核的结果全部加起来,而是变成三维的通道

偏差B为卷积核类数*卷积核个数,如上就是2*3
4.3. 代码
(1)多输入通道
import torch
from d2l import torch as d2l
def corr2d_multi_in(X, K):
# 先遍历“X”和“K”的第0个维度(通道维度),再把它们加在一起
return sum(d2l.corr2d(x, k) for x, k in zip(X, K))
5. 汇聚层/池化层
5.1. 池化层
(1)可以检测垂直边缘

(2)需要一定程度的平移不变性(防抖),不要让位置太敏感
(3)最大池化:选择一定区域里面的最大值

(4)平均池化层:对所有值相加取平均
(5)一般来说池化放在卷积后面
(6)但是池化层用得越来越少了
更多推荐




所有评论(0)