![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
跟李沐学AI
文章平均质量分 50
Grin*
https://pengxin-guo.github.io
展开
-
48 全连接卷积神经网络 FCN [动手学深度学习v2]
1. FCN是用深度神经网络来做语义分割的奠基性工作;它用转置卷积层来替换CNN最后的全连接层,从而可以实现每个像素的预测。2. 初始化转置卷积层 ```python # 利用双线性插值来初始化卷积核参数 def bilinear_kernel(in_channels, out_channels, kernel_size): factor = (kernel_size + 1) // 2 if原创 2022-01-19 15:59:39 · 879 阅读 · 0 评论 -
47 转置卷积 [动手学深度学习v2]
转置卷积卷积不会增大输入的高宽,通常要么不变、要么减半;转置卷积则可以用来增大输入高宽。Y[i:i+h,j:j+w]+=X[i,j]⋅KY[i: i+h, j: j+w]+=X[i, j] \cdot KY[i:i+h,j:j+w]+=X[i,j]⋅K如果卷积将输入从(h,w)(h, w)(h,w)变成了(h′,w′)(h', w')(h′,w′),同样超参数的转置卷积则从(h′,w′)(h', w')(h′,w′)变成(h,w)(h, w)(h,w)。代码实现import t..原创 2022-01-18 16:33:19 · 571 阅读 · 0 评论 -
44 物体检测算法:R-CNN,SSD,YOLO [动手学深度学习v2]
R-CNN 图1.R-CNN模型使用启发式搜索算法来选择锚框;使用预训练模型来对每个锚框抽取特征;训练一个SVM来对类别分类;训练一个线性回归模型来预测边缘框偏移。兴趣区域(RoI)池化层给定一个锚框,均匀分割成n×mn \times mn×m块,输出每块里的最大值;不管锚框多大,总是输出nmnmnm个值。图2.一个2 x 2的兴趣区域汇聚层Fast R-CNN 图3.Fast R-CNN模型使用CNN对图片抽取特征;使用Selective search基于原..原创 2022-01-15 16:33:48 · 785 阅读 · 0 评论 -
36 数据增广 [动手学深度学习v2]
数据增强:增加一个已有数据集,使得有更多的多样性;在语言里面加入各种不同的背景噪音;改变图片的颜色和形状。图像增广import torchimport torchvisionfrom torch import nn# 左右翻转图像torchvision.transforms.RandomHorizontalFlip()# 上下翻转图像torchvision.transforms.RandomVerticalFlip()# 随机剪裁shape_aug = torchv..原创 2021-12-20 20:35:16 · 2189 阅读 · 0 评论 -
34 多GPU训练实现 [动手学深度学习v2]
多GPU训练实现import torchfrom torch import nn# 将参数复制到其他GPU上def get_params(params, device): new_params = [p.clone().to(device) for p in params] for p in new_params: p.requires_grad_() return new_params# 将所有向量相加,并将结果广播给所有GPUdef allre..原创 2021-12-18 11:49:22 · 1068 阅读 · 0 评论 -
33 单机多卡并行 [动手学深度学习v2]
常用并行方案:数据并行;模型并行;通道并行(数据+模型并行);数据并行:将小批量分成nnn块,每个GPU拿到完整参数计算一块数据的梯度;通常性能更好。模型并行:将模型分成nnn块,每个GPU拿到一块模型计算它的前向和反向结果;通常用于模型大到单GPU放不下。当一个模型能用单卡计算时,通常使用数据并行拓展到多卡上;模型并行则用在超大模型上。...原创 2021-12-18 10:44:11 · 640 阅读 · 0 评论 -
28 批量归一化 [动手学深度学习v2]
为什么需要批量归一化?损失出现在最后,后面的层训练比较快 【梯度大】;数据在最底部,底部的层训练较慢 【梯度小】;底部层一变化,所有都得跟着变,最后的那些层需要重新学习很多次,导致收敛变慢【底层尝试抽取一些很底层的特征,比如局部、边缘、很简单的纹理信息】。我们可以再学习底部层的时候避免变化顶部层吗?这就是批量归一化要考虑的问题。批量归一化固定小批量里面的均值和方差μB=1∣B∣∑i∈Bxi and σB2=1∣B∣∑i∈B(xi−μB)2+ϵ\mu_{B}=\..原创 2021-12-04 16:15:16 · 789 阅读 · 0 评论 -
23-29 经典网络架构 [动手学深度学习v2]
LeNet(1998)Figure.1 Data flow in LeNet. The input is a handwritten digit, the output a probability over 10 possible outcomes.LeNet是早期成功的神经网络;先使用卷积层来学习图片空间信息,然后通过池化层来降低卷积层对图片的敏感度,最后使用全连接层来转换到类别空间。AlexNet(2012)Figure.2 From LeNet (left) to AlexNet ..原创 2021-11-29 21:13:04 · 2104 阅读 · 0 评论 -
22 池化层 [动手学深度学习v2]
卷积层对位置非常敏感池化层可以缓解卷积层对位置的敏感性;返回窗口中的最大或平均值;在每个通道上单独运算;同样有窗口大小、填充、和步幅作为超参数。实现池化层的正向传播import torchdef pool2d(X, pool_size, mode='max'): p_h, p_w = pool_size Y = torch.zeros((X.shape[0] - p_h + 1, X.shape[1] - p_w + 1)) for i in range(Y.s..原创 2021-11-28 20:51:16 · 2355 阅读 · 0 评论 -
21 卷积层里的多输入多输出通道 [动手学深度学习v2]
多个输入通道:每个通道都有一个卷积核,结果是所有通道卷积结果的和输入X\mathbf{X}X:ci×nh×nwc_i \times n_h \times n_wci×nh×nw核W\mathbf{W}W:ci×kh×kwc_i \times k_h \times k_wci×kh×kw输出Y\mathbf{Y}Y:mh×mwm_h \times m_wmh×mwY=∑i=0ciXi,:,:∗⋆Wi,:,:\mathbf{Y}=\sum_{i=0}^{c_{i}} \mathbf..原创 2021-11-28 18:31:44 · 233 阅读 · 0 评论 -
19 卷积层 [动手学深度学习v2]
两个原则:平移不变性局部性这两个在图片里面找模式的原则启发了之后的设计。重新考察全连接层将输入和输出变形为矩阵(宽度,高度)将权重变形为4-D张量(hhh, www)到(h′h'h′, w′w'w′)hi,j=∑k,lwi,j,k,lxk,l=∑a,bvi,j,a,bxi+a,j+bh_{i, j}=\sum_{k, l} w_{i, j, k, l} x_{k, l}=\sum_{a, b} v_{i, j, a, b} x_{i+a, j+b}hi,j=k,l∑..原创 2021-11-28 11:54:14 · 448 阅读 · 0 评论 -
16 PyTorch神经网络基础 [动手学深度学习v2]
参数绑定在不同的网络之间共享权重shared = nn.Linear(8, 8)net = nn.Sequential(nn.Linear(4, 8), nn.ReLU(), shared, nn.ReLU(), shared, nn.ReLU(), nn.Linear(8, 1))print(net[2].weight.data[0] == net[4].weight.data[0])# tensor([True, True, True, True, True, True, True, Tr..原创 2021-11-27 11:17:30 · 649 阅读 · 0 评论 -
13 丢弃法 [动手学深度学习v2]
无偏差的加入噪音对x\mathbf{x}x加入噪音得到x′\mathbf{x}^{\prime}x′,我们希望E[x′]=x\mathbf{E}\left[\mathbf{x}^{\prime}\right]=\mathbf{x}E[x′]=x丢弃法对每个元素进行如下扰动xi′={0 with probablity pxi1−p otherise x_{i}^{\prime}= \begin{cases}0 & \text { wi..原创 2021-11-24 19:22:23 · 438 阅读 · 0 评论 -
12 权重衰退 [动手学深度学习v2]
使用均方范数作为硬性限制通过限制参数值的选择范围来控制模型容量minℓ(w,b) subject to ∥w∥2≤θ\min \ell(\mathbf{w}, b) \quad \text { subject to }\|\mathbf{w}\|^{2} \leq \thetaminℓ(w,b) subject to ∥w∥2≤θ通常不限制bbb (限不限制都差不多)小的θ\thetaθ意味着更强的正则项使用均方范数作为..原创 2021-11-22 21:15:51 · 507 阅读 · 0 评论 -
09 Softmax回归+损失函数+图片分类数据集 [动手学深度学习v2]
Huber’s Robust Lossl(y,y′)={∣y−y′∣−12 if ∣y−y′∣>112(y−y′)2 otherwise l\left(y, y^{\prime}\right)= \begin{cases}\left|y-y^{\prime}\right|-\frac{1}{2} & \text { if }\left|y-y^{\prime}\right|>1 \\ \frac{1}{2}\left(y-y^{\prime..原创 2021-11-17 20:31:11 · 371 阅读 · 0 评论 -
06 矩阵计算 [动手学深度学习v2]
主要是关于矩阵的求导。∂y∂x\frac{\partial y}{\partial \mathbf{x}}∂x∂y [yyy是标量,x\mathbf{x}x是列向量,导数是行向量]x=[x1x2⋮xn],∂y∂x=[∂y∂x1,∂y∂x2,⋯ ,∂y∂xn]\mathbf{x} = \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_n\end{bmatrix}, \quad \frac{\partial y}{\partial \mathbf{x}}原创 2021-11-08 22:55:26 · 638 阅读 · 0 评论 -
04 数据操作+数据预处理 [动手学深度学习v2]
[04] 数据操作+数据预处理访问元素一个元素:[1,2]:第一行,第二列;一行:[1, :]:第一行所有元素;一列:[:, 1]:第一列所有元素;子区域:[1:3, 1:]:第一行到第三行,第一列到最后一列 所有元素;子区域:[::3, ::2]:隔三行,隔两列的所有元素。(如下图所示)AppData\Roaming\Typora\typora-user-images\1636208433410.png)]广播机制a = torch.arange(3).reshape((3原创 2021-11-06 23:11:56 · 158 阅读 · 0 评论