自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 PyTorch——NiN网络的实现

参考链接https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter05_CNN/5.8_ninNiN块NiN使用1×1卷积层来替代全连接层,从而使空间信息能够自然传递到后面的层中去。NiN块是NiN中的基础块。它由一个卷积层加两个充当全连接层的1×1卷积层串联而成。其中第一个卷积层的超参数可以自行设置,而第二和第三个卷积层的超参数一般是固定的。def nin_block(in_channels, out_channels, kernel_size,

2021-03-28 22:53:17 1286 1

原创 PyTorch——自注意力(self-attention)机制实现(代码详解)

参考链接https://www.bilibili.com/video/BV1JE411g7XF?p=54https://arxiv.org/abs/1706.03762https://blog.csdn.net/qq_36653505/article/details/83375160简述自注意力机制(self-attention)self-attention可以视为一个特征提取层,给定输入特征a1,a2,⋅⋅⋅ana^{1},a^{2},\cdot \cdot \cdot a^{n}a1,a2

2021-03-28 16:24:21 90249 55

原创 PyTorch——消除随机性

参考链接https://pytorch.org/docs/stable/notes/randomness.htmlhttps://blog.csdn.net/zxyhhjs2017/article/details/91348108https://zhuanlan.zhihu.com/p/141063432?from_voters_page=truehttps://zhuanlan.zhihu.com/p/73711222实验结果的随机性算法在运行过程中会存在许多的随机性,比如参数的随机初始化

2021-03-18 13:37:24 1263 2

原创 PyTorch——VGG实现(附完整代码)

参考链接https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter05_CNN/5.7_vggVGGVGG的名字来源于论文作者所在的实验室Visual Geometry Group。VGG提出了可以通过重复使用简单的基础块来构建深度模型的思路。VGG块VGG块的组成规律是:连续使用数个相同的填充为1、窗口形状为3×3的卷积层后接上一个步幅为2、窗口形状为2×2的最大池化层。卷积层保持输入的高和宽不变,而池化层则对其减半。我们使用vgg_block函

2021-03-15 14:38:35 12241 5

原创 PyTorch——激活函数

参考链接https://mp.weixin.qq.com/s/irha7DB2l0GfdAJdsPXlMAhttps://pytorch.org/docs/stable/nn.html#non-linear-activations-weighted-sum-nonlinearityhttps://pytorch.org/docs/stable/nn.html#non-linear-activations-otherhttps://zhuanlan.zhihu.com/p/88429934?from

2021-03-15 11:09:38 631

原创 PyTorch——AlexNet实现(附完整代码)

参考链接https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter05_CNN/5.6_alexnetAlexNet网络结构AlexNet v.s. LeNet第一,与相对较小的LeNet相比,AlexNet包含8层变换,其中有5层卷积和2层全连接隐藏层,以及1个全连接输出层。lexNet第一层中的卷积窗口形状是11×11。因为ImageNet中绝大多数图像的高和宽均比MNIST图像的高和宽大10倍以上,ImageNet图像的物体占用更多的像素,

2021-03-14 22:29:43 19609 10

原创 PyTorch——通俗理解torch.einsum

参考链接https://www.cnblogs.com/mengnan/p/10319701.html从einsum表达式恢复为张量计算torch.einsum一般这样用:result=torch.einsum(′xx,xx,xx→xx′,arg1,arg2,arg3)result=torch.einsum\left ( '\textrm{xx,xx,xx}\rightarrow \textrm{xx}',arg1,arg2,arg3\right )result=torch.einsum(′xx

2021-03-10 11:58:19 4905 1

原创 AI项目部署:难度、目标及基本原则

AI项目部署:难度、目标及基本原则参考链接https://time.geekbang.org/course/detail/100046401-206515AI项目部署

2021-03-09 16:56:10 374

原创 深度学习与硬件——CPU、GPU和TPU

参考链接https://time.geekbang.org/course/detail/100046401-206512为什么关注硬件有时候结果出现问题不一定是算法的问题,而可能是硬件的问题。但关注硬件不等于所有都要重写。加速训练。通过选择不同的硬件配置,可以提高训练速度。避免部署出现问题。深度学习与CPU一般不用CPU训练深度学习模型。很多if…else出现时,CPU会比GPU快。如果需要加速,可以通过Cython访问C++。对于大部分硬件(GPU、

2021-03-09 16:50:05 1940

原创 TensorFlow or PyTorch? 优缺点分析

参考链接https://time.geekbang.org/course/detail/100046401-202904TensorFlowPyTorch

2021-03-09 15:35:08 1554

原创 NLP——基本任务及研究方向

参考链接https://time.geekbang.org/course/detail/100046401-202901NLP基本任务及研究方向

2021-03-09 15:23:23 409

原创 NLP——AI项目流程

参考链接https://time.geekbang.org/course/detail/100046401-202899AI项目流程拿到一个AI项目,首先要做的是判断是否要接受,能否完成。然后才是前期调研和方案确定、数据标注、算法开发、效果调优和代码部署。...

2021-03-09 14:21:48 314

原创 PyTorch——LeNet实现(附完整代码)

参考链接https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter05_CNN/5.5_lenetLeNetLeNet分为卷积层块和全连接层块两个部分。卷积层块里的基本单位是卷积层后接最大池化层:卷积层用来识别图像里的空间模式,如线条和物体局部,之后的最大池化层则用来降低卷积层对位置的敏感性。在卷积层块中,每个卷积层都使用5×5的窗口,并在输出上使用sigmoid激活函数。第一个卷积层输出通道数为6,第二个卷积层输出通道数则增加到16。这是因为第二个

2021-03-07 14:36:28 14763 3

原创 PyTorch——池化层

参考链接https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter05_CNN/5.4_pooling二维最大池化层和平均池化层池化(pooling)层的提出是为了缓解卷积层对位置的过度敏感性。同卷积层一样,池化层每次对输入数据的一个固定形状窗口(又称池化窗口)中的元素计算输出。不同于卷积层里计算输入和核的互相关性,池化层直接计算池化窗口内元素的最大值或者平均值。该运算也分别叫做最大池化或平均池化。二维最大池化在二维最大池化中,池化窗口从输入数组

2021-03-07 14:01:48 1499

原创 PyTorch——多通道卷积

参考链接https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter05_CNN/5.3_channels多输入通道当输入数据含多个通道时,我们需要构造一个输入通道数与输入数据的通道数相同的卷积核,从而能够与含多通道的输入数据做互相关运算。由于输入和卷积核各有cic_{i}ci​个通道,我们可以在各个通道上对输入的二维数组和卷积核的二维核数组做互相关运算,再将这cic_{i}ci​个互相关运算的二维输出按通道相加,得到一个二维数组。这就是含多个通道的输

2021-03-07 13:22:56 3009

原创 PyTorch——二维卷积

参考链接https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter05_CNN/5.1_conv-layer二维互相关计算虽然卷积层得名于卷积(convolution)运算,但我们通常在卷积层中使用更加直观的互相关(cross-correlation)运算。在二维卷积层中,一个二维输入数组和一个二维核(kernel)数组通过互相关运算输出一个二维数组。def corr2d(X, K): h, w = K.shape Y = torch

2021-03-07 12:40:49 1381

原创 PyTorch——使用GPU

参考链接https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter04_DL_computation/4.6_use-gpu查看GPU信息!nvidia-smi # 对Linux/macOS用户有效查看GPU是否可用torch.cuda.is_available()查看GPU数量torch.cuda.device_count()查看当前GPU索引号torch.cuda.current_device()查看GPU名字torch.

2021-03-06 16:10:55 373

原创 PyTorch——读取与存储

参考链接https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter04_DL_computation/4.5_read-write读写Tensor存储save使用Python的pickle实用程序将对象进行序列化,然后将序列化的对象保存到disk,使用save可以保存各种对象,包括模型、张量和字典等。torch.save(x, 'x.pt')读取load使用pickle unpickle工具将pickle的对象文件反序列化为内存。x2 =

2021-03-06 15:33:12 600

原创 PyTorch——自定义层

参考链接https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter04_DL_computation/4.4_custom-layer不含模型参数的自定义层与使用Module类构造模型类似。下面的CenteredLayer类通过继承Module类自定义了一个将输入减掉均值后输出的层,并将层的计算定义在了forward函数里。这个层里不含模型参数。class MyDense(nn.Module): def __init__(self):

2021-03-06 15:17:52 811

原创 PyTorch——模型参数的访问、初始化和共享

参考链接https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter04_DL_computation/4.2_parameters参数的访问我们可以通过Module类的parameters()或者named_parameters()方法来访问所有参数(以迭代器的形式返回),后者除了返回参数Tensor外还会返回其名字。下面,访问多层感知机net的所有参数:for name, param in net.named_parameters(): p

2021-03-06 14:52:47 1229

原创 PyTorch——Dropout(丢弃法)

参考链接https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter03_DL-basics/3.13_dropoutdropout深度学习模型常常使用丢弃法(dropout)来应对过拟合问题。丢弃法有一些不同的变体。常用的是倒置丢弃法(inverted dropout)。设某隐藏层为hhh,第iii个隐藏单元为hih_{i}hi​。当对该隐藏层使用丢弃法时,该层的隐藏单元将有一定概率被丢弃掉。设丢弃概率为ppp,那么有ppp的概率hih_{i}hi​

2021-03-06 13:46:06 1306

原创 PyTorch——L2范数正则化(权重衰减)

参考资料https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter03_DL-basics/3.12_weight-decay权重衰减(weight decay)权重衰减等价于L2范数正则化(regularization)。正则化通过为模型损失函数添加惩罚项使学出的模型参数值较小,是应对过拟合的常用手段。手动实现def l2_penalty(w): return (w**2).sum() / 2在计算loss时加上L2正则化项即可:l

2021-03-05 21:22:34 10004 3

原创 PyTorch——实现多层感知机(附完整代码)

参考链接https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter03_DL-basics/3.9_mlp-scratchhttps://tangshusen.me/Dive-into-DL-PyTorch/#/chapter03_DL-basics/3.10_mlp-pytorch加载数据依然使用“Fashion-MNIST”数据集。mnist_train = torchvision.datasets.FashionMNIST(root='~/D

2021-03-05 18:16:05 5527

原创 PyTorch——从零实现图片分类(附完整代码)

参考链接https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter03_DL-basics/3.4_softmax-regressionhttps://tangshusen.me/Dive-into-DL-PyTorch/#/chapter03_DL-basics/3.5_fashion-mnisthttps://tangshusen.me/Dive-into-DL-PyTorch/#/chapter03_DL-basics/3.7_softmax-re

2021-03-05 17:00:13 2116

原创 PyTorch小技巧——动态调整学习率

参考链接https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter03_DL-basics/3.3_linear-regression-pytorch为不同子网络设置不同的学习率可以为不同子网络设置不同的学习率,这在finetune时经常用到。optimizer =optim.SGD([ # 如果对某个参数不指定学习率,就使用最外层的默认学习率 {'params': net.subnet

2021-03-03 23:35:52 547 1

原创 PyTorch——简洁实现线性回归

参考链接https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter03_DL-basics/3.3_linear-regression-pytorch人工构建数据集为了简便,人工构建一个样本数为1000,特征数为2的数据集,模型的真实权重设为[2,−3.4]T\left [ 2,-3.4\right ]^{T}[2,−3.4]T,偏差为4.2,并为数据添加了服从N(0,0.01)N\left ( 0,0.01\right )N(0,0.01)分布的噪声

2021-03-03 23:15:20 131 1

原创 PyTorch——仅使用Tensor和autograd模块构建线性回归模型

参考链接https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter03_DL-basics/3.2_linear-regression-scratch线性回归线性回归输出是一个连续值,因此适用于回归问题。回归问题在实际中很常见,如预测房屋价格、气温、销售额等连续值的问题。人工构建数据集为了简便,人工构建一个样本数为1000,特征数为2的数据集,模型的真实权重设为[2,−3.4]T\left [ 2,-3.4\right ]^{T}[2,−3.4]T

2021-03-03 21:29:03 164 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除