<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[gpx33333的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/gpx33333</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; gpx33333]]></copyright><item><title><![CDATA[48 全连接卷积神经网络 FCN [动手学深度学习v2]]]></title><link>https://blog.youkuaiyun.com/gpx33333/article/details/122583146</link><guid>https://blog.youkuaiyun.com/gpx33333/article/details/122583146</guid><author>gpx33333</author><pubDate>Wed, 19 Jan 2022 15:59:39 +0800</pubDate><description><![CDATA[1. FCN是用深度神经网络来做语义分割的奠基性工作；它用转置卷积层来替换CNN最后的全连接层，从而可以实现每个像素的预测。

2. 初始化转置卷积层

   ```python
   # 利用双线性插值来初始化卷积核参数
   def bilinear_kernel(in_channels, out_channels, kernel_size):
       factor = (kernel_size + 1) // 2
       if]]></description><category></category></item><item><title><![CDATA[47 转置卷积 [动手学深度学习v2]]]></title><link>https://blog.youkuaiyun.com/gpx33333/article/details/122562975</link><guid>https://blog.youkuaiyun.com/gpx33333/article/details/122562975</guid><author>gpx33333</author><pubDate>Tue, 18 Jan 2022 16:33:19 +0800</pubDate><description><![CDATA[转置卷积
卷积不会增大输入的高宽，通常要么不变、要么减半；
转置卷积则可以用来增大输入高宽。

Y[i:i+h,j:j+w]+=X[i,j]⋅K
Y[i: i+h, j: j+w]+=X[i, j] \cdot K
Y[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..]]></description><category></category></item><item><title><![CDATA[44 物体检测算法：R-CNN，SSD，YOLO [动手学深度学习v2]]]></title><link>https://blog.youkuaiyun.com/gpx33333/article/details/122512037</link><guid>https://blog.youkuaiyun.com/gpx33333/article/details/122512037</guid><author>gpx33333</author><pubDate>Sat, 15 Jan 2022 16:33:48 +0800</pubDate><description><![CDATA[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基于原..]]></description><category></category></item><item><title><![CDATA[36 数据增广 [动手学深度学习v2]]]></title><link>https://blog.youkuaiyun.com/gpx33333/article/details/122049791</link><guid>https://blog.youkuaiyun.com/gpx33333/article/details/122049791</guid><author>gpx33333</author><pubDate>Mon, 20 Dec 2021 20:35:16 +0800</pubDate><description><![CDATA[数据增强：增加一个已有数据集，使得有更多的多样性；

在语言里面加入各种不同的背景噪音；
改变图片的颜色和形状。



图像增广
import torch
import torchvision
from torch import nn

# 左右翻转图像
torchvision.transforms.RandomHorizontalFlip()

# 上下翻转图像
torchvision.transforms.RandomVerticalFlip()

# 随机剪裁
shape_aug = torchv..]]></description><category></category></item><item><title><![CDATA[34 多GPU训练实现 [动手学深度学习v2]]]></title><link>https://blog.youkuaiyun.com/gpx33333/article/details/122010385</link><guid>https://blog.youkuaiyun.com/gpx33333/article/details/122010385</guid><author>gpx33333</author><pubDate>Sat, 18 Dec 2021 11:49:22 +0800</pubDate><description><![CDATA[多GPU训练实现
import torch
from 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

# 将所有向量相加，并将结果广播给所有GPU
def allre..]]></description><category></category></item><item><title><![CDATA[33 单机多卡并行 [动手学深度学习v2]]]></title><link>https://blog.youkuaiyun.com/gpx33333/article/details/122009571</link><guid>https://blog.youkuaiyun.com/gpx33333/article/details/122009571</guid><author>gpx33333</author><pubDate>Sat, 18 Dec 2021 10:44:11 +0800</pubDate><description><![CDATA[常用并行方案：
数据并行；
模型并行；
通道并行（数据+模型并行）；


数据并行：将小批量分成nnn块，每个GPU拿到完整参数计算一块数据的梯度；通常性能更好。


模型并行：将模型分成nnn块，每个GPU拿到一块模型计算它的前向和反向结果；通常用于模型大到单GPU放不下。


当一个模型能用单卡计算时，通常使用数据并行拓展到多卡上；模型并行则用在超大模型上。



...]]></description><category></category></item><item><title><![CDATA[28 批量归一化 [动手学深度学习v2]]]></title><link>https://blog.youkuaiyun.com/gpx33333/article/details/121717427</link><guid>https://blog.youkuaiyun.com/gpx33333/article/details/121717427</guid><author>gpx33333</author><pubDate>Sat, 04 Dec 2021 16:15:16 +0800</pubDate><description><![CDATA[为什么需要批量归一化？

损失出现在最后，后面的层训练比较快 【梯度大】；
数据在最底部，底部的层训练较慢 【梯度小】；
底部层一变化，所有都得跟着变，最后的那些层需要重新学习很多次，导致收敛变慢【底层尝试抽取一些很底层的特征，比如局部、边缘、很简单的纹理信息】。
我们可以再学习底部层的时候避免变化顶部层吗？这就是批量归一化要考虑的问题。



批量归一化
固定小批量里面的均值和方差
μB=1∣B∣∑i∈Bxi&nbsp;and&nbsp;σB2=1∣B∣∑i∈B(xi−μB)2+ϵ
\mu_{B}=\..]]></description><category></category></item><item><title><![CDATA[本地端口绑定服务器端口]]></title><link>https://blog.youkuaiyun.com/gpx33333/article/details/121634200</link><guid>https://blog.youkuaiyun.com/gpx33333/article/details/121634200</guid><author>gpx33333</author><pubDate>Tue, 30 Nov 2021 15:31:02 +0800</pubDate><description><![CDATA[端口绑定问题
本地端口绑定服务器端口
ssh -L localhost:port:localhost:port name@ip


]]></description><category></category></item><item><title><![CDATA[23-29 经典网络架构 [动手学深度学习v2]]]></title><link>https://blog.youkuaiyun.com/gpx33333/article/details/121619632</link><guid>https://blog.youkuaiyun.com/gpx33333/article/details/121619632</guid><author>gpx33333</author><pubDate>Mon, 29 Nov 2021 21:13:04 +0800</pubDate><description><![CDATA[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 ..]]></description><category></category></item><item><title><![CDATA[22 池化层 [动手学深度学习v2]]]></title><link>https://blog.youkuaiyun.com/gpx33333/article/details/121597525</link><guid>https://blog.youkuaiyun.com/gpx33333/article/details/121597525</guid><author>gpx33333</author><pubDate>Sun, 28 Nov 2021 20:51:16 +0800</pubDate><description><![CDATA[卷积层对位置非常敏感


池化层可以缓解卷积层对位置的敏感性；返回窗口中的最大或平均值；在每个通道上单独运算；同样有窗口大小、填充、和步幅作为超参数。


实现池化层的正向传播
import torch

def 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..]]></description><category></category></item><item><title><![CDATA[21 卷积层里的多输入多输出通道 [动手学深度学习v2]]]></title><link>https://blog.youkuaiyun.com/gpx33333/article/details/121595298</link><guid>https://blog.youkuaiyun.com/gpx33333/article/details/121595298</guid><author>gpx33333</author><pubDate>Sun, 28 Nov 2021 18:31:44 +0800</pubDate><description><![CDATA[多个输入通道：每个通道都有一个卷积核，结果是所有通道卷积结果的和
输入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​×mw​
Y=∑i=0ciXi,:,:∗⋆Wi,:,:
\mathbf{Y}=\sum_{i=0}^{c_{i}} \mathbf..]]></description><category></category></item><item><title><![CDATA[19 卷积层 [动手学深度学习v2]]]></title><link>https://blog.youkuaiyun.com/gpx33333/article/details/121589150</link><guid>https://blog.youkuaiyun.com/gpx33333/article/details/121589150</guid><author>gpx33333</author><pubDate>Sun, 28 Nov 2021 11:54:14 +0800</pubDate><description><![CDATA[两个原则：

平移不变性
局部性

这两个在图片里面找模式的原则启发了之后的设计。


重新考察全连接层


将输入和输出变形为矩阵（宽度，高度）


将权重变形为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+b
h_{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∑​..]]></description><category></category></item><item><title><![CDATA[16 PyTorch神经网络基础 [动手学深度学习v2]]]></title><link>https://blog.youkuaiyun.com/gpx33333/article/details/121574378</link><guid>https://blog.youkuaiyun.com/gpx33333/article/details/121574378</guid><author>gpx33333</author><pubDate>Sat, 27 Nov 2021 11:17:30 +0800</pubDate><description><![CDATA[参数绑定
在不同的网络之间共享权重
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..]]></description><category></category></item><item><title><![CDATA[13 丢弃法 [动手学深度学习v2]]]></title><link>https://blog.youkuaiyun.com/gpx33333/article/details/121522806</link><guid>https://blog.youkuaiyun.com/gpx33333/article/details/121522806</guid><author>gpx33333</author><pubDate>Wed, 24 Nov 2021 19:22:23 +0800</pubDate><description><![CDATA[无偏差的加入噪音
对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&nbsp;with&nbsp;probablity&nbsp;pxi1−p&nbsp;otherise&nbsp;
x_{i}^{\prime}= \begin{cases}0 &amp; \text { wi..]]></description><category></category></item><item><title><![CDATA[12 权重衰退 [动手学深度学习v2]]]></title><link>https://blog.youkuaiyun.com/gpx33333/article/details/121480267</link><guid>https://blog.youkuaiyun.com/gpx33333/article/details/121480267</guid><author>gpx33333</author><pubDate>Mon, 22 Nov 2021 21:15:51 +0800</pubDate><description><![CDATA[使用均方范数作为硬性限制

通过限制参数值的选择范围来控制模型容量
min⁡ℓ(w,b)&nbsp;subject&nbsp;to&nbsp;∥w∥2≤θ
\min \ell(\mathbf{w}, b) \quad \text { subject to }\|\mathbf{w}\|^{2} \leq \theta
minℓ(w,b)&nbsp;subject&nbsp;to&nbsp;∥w∥2≤θ
通常不限制bbb (限不限制都差不多)
小的θ\thetaθ意味着更强的正则项



使用均方范数作为..]]></description><category></category></item><item><title><![CDATA[09 Softmax回归+损失函数+图片分类数据集 [动手学深度学习v2]]]></title><link>https://blog.youkuaiyun.com/gpx33333/article/details/121387034</link><guid>https://blog.youkuaiyun.com/gpx33333/article/details/121387034</guid><author>gpx33333</author><pubDate>Wed, 17 Nov 2021 20:31:11 +0800</pubDate><description><![CDATA[Huber’s Robust Loss
l(y,y′)={∣y−y′∣−12&nbsp;if&nbsp;∣y−y′∣&gt;112(y−y′)2&nbsp;otherwise&nbsp;
l\left(y, y^{\prime}\right)= \begin{cases}\left|y-y^{\prime}\right|-\frac{1}{2} &amp; \text { if }\left|y-y^{\prime}\right|&gt;1 \\ \frac{1}{2}\left(y-y^{\prime..]]></description><category></category></item><item><title><![CDATA[06 矩阵计算 [动手学深度学习v2]]]></title><link>https://blog.youkuaiyun.com/gpx33333/article/details/121218372</link><guid>https://blog.youkuaiyun.com/gpx33333/article/details/121218372</guid><author>gpx33333</author><pubDate>Mon, 08 Nov 2021 22:55:26 +0800</pubDate><description><![CDATA[主要是关于矩阵的求导。


∂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}}]]></description><category></category></item><item><title><![CDATA[04 数据操作+数据预处理 [动手学深度学习v2]]]></title><link>https://blog.youkuaiyun.com/gpx33333/article/details/121186292</link><guid>https://blog.youkuaiyun.com/gpx33333/article/details/121186292</guid><author>gpx33333</author><pubDate>Sat, 06 Nov 2021 23:11:56 +0800</pubDate><description><![CDATA[[04] 数据操作+数据预处理


访问元素
一个元素：[1,2]：第一行，第二列；
一行：[1, :]：第一行所有元素；
一列：[:, 1]：第一列所有元素；
子区域：[1:3, 1:]：第一行到第三行，第一列到最后一列 所有元素；
子区域：[::3, ::2]：隔三行，隔两列的所有元素。(如下图所示)



AppData\Roaming\Typora\typora-user-images\1636208433410.png)]


广播机制
a = torch.arange(3).reshape((3]]></description><category></category></item><item><title><![CDATA[因果推断----中介公式]]></title><link>https://blog.youkuaiyun.com/gpx33333/article/details/113810307</link><guid>https://blog.youkuaiyun.com/gpx33333/article/details/113810307</guid><author>gpx33333</author><pubDate>Sun, 14 Feb 2021 19:33:19 +0800</pubDate><description><![CDATA[中介公式
假如变量之间没有混杂，M是处理X和结果Y之间的中介物，则自然间接效应为：
NIE=∑m[P(M=m∣X=1)−P(M=m∣X=0)]×P(Y=1∣X=0,M=m)
\text{NIE} = \sum_m[P(M=m|X=1) - P(M=m|X=0)] \times P(Y=1|X=0, M=m)
NIE=m∑​[P(M=m∣X=1)−P(M=m∣X=0)]×P(Y=1∣X=0,M=m)
中括号内的表达式代表X对M的影响，乘号后的表达式代表M对Y的影响（当X=0时）。

...]]></description><category></category></item><item><title><![CDATA[因果推断----必要因和充分因]]></title><link>https://blog.youkuaiyun.com/gpx33333/article/details/113785681</link><guid>https://blog.youkuaiyun.com/gpx33333/article/details/113785681</guid><author>gpx33333</author><pubDate>Wed, 10 Feb 2021 20:48:55 +0800</pubDate><description><![CDATA[必要因（或“若非因”）和充分因
必要因：

已知张三堵住消防通道（X=1），并且李四死了（Y=1），假如X为0，那么李四还活着（Y=0）的概率是多少？

必要性概率PNPNPN为P(YX=0=0∣X=1,Y=1)P(Y_{X=0}=0|X=1, Y=1)P(YX=0​=0∣X=1,Y=1)
充分因：

被告向受害者开了一枪，但没有击中。在受害者逃离现场的过程中，他碰巧被一架坠落的钢琴砸死了。
如果X=0X=0X=0且Y=0Y=0Y=0，即被告没有向受害者开枪，且受害者没有跑到钢琴下。然后我们要问的是，在这种]]></description><category></category></item></channel></rss>