PyTorch
深度学习框架
Despacito1006
某985高校计算机专业硕士一枚~
展开
-
Pytorch系列之——模型保存与加载、finetune
模型保存与加载序列化与反序列化模型保存与加载的两种方式模型断点续训练按理来说我们训练好一个模型是为了以后可以更方便的去使用它,当我们训练模型是模型是被存储在内存当中的,而内存中数据一般不具有这种长久性的存储的功能,但硬盘可以长期的存储数据,所以在我们训练好模型之后,我们需要将模型从内存中转移到硬盘上进行长期存储。这就是模型的保存与加载,也可以称之为序列化与反序列化,下面介绍为什么模型的保存与加载可以被称为序列化与反序列化呢?序列化与反序列化主要描述的是内存与硬盘之间的一个转换关系,训练好的模型原创 2020-09-09 22:14:58 · 896 阅读 · 0 评论 -
Pytorch系列之——正则化
正则化之weight decay正则化与偏差-方差分解pytorch中的L2正则化——weight decay在机器学习、深度学习当中我们经常会听到regularization正则化这个概念,正则化这三个字到底是什么意思呢?如果直接从字面的意思来理解正则化是非常抽象的,但正则化的概念非常简单,就是减少方差的策略。那么什么是方差,什么是偏差呢?误差可分解为:偏差、方差与噪声之和。即误差=偏差+方差+噪声之和,偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;方差度原创 2020-09-08 21:49:16 · 2294 阅读 · 2 评论 -
Pytorch系列之——损失函数、优化器
权值初始化前面我们介绍了如何搭建网络模型,在模型搭建好之后一个非常重要的步骤就是对模型当中的权值进行初始化。正确的权值初始化可以加快模型的收敛,而不恰当的权值初始化可能会引发梯度的消失或爆炸,最终导致模型无法训练。梯度消失与爆炸Xavier方法与Kaiming方法常用初始化方法梯度消失与爆炸首先观察模型是怎么对W2进行求导的,我们有:H2=H1∗W2 H_{2} = H_{1} * W_{2}H2=H1∗W2ΔW2=∂Loss∂out∗∂out∂H2∗∂H2∂w2=∂Loss∂o原创 2020-09-06 18:38:24 · 1104 阅读 · 0 评论 -
Pytorch系列之——数据读取机制&Transforms
DataLoader与DataSet人民币二分类DataLoader与DataSet根据pytorch张量部分中提到的机器学习模型训练的五大步骤:数据、模型、损失函数、优化器和迭代训练。我们这部分主要介绍模型训练的第一个步骤:数据模块。其中,数据模块通常进一步划分为四个子模块,分别为:数据收集、数据划分、数据读取和数据预处理。这次主要介绍的部分是数据模块中的数据读取子模块DataLoader,其中DataLoader还可以划分为Sampler和DataSet,Sampler是用来生成索引,而Da原创 2020-09-05 21:55:12 · 806 阅读 · 0 评论 -
Pytorch系列之——nn网络层
卷积层1d/2d/3d卷积卷积-nn.Conv2d()转置卷积-nn.ConvTranspose1d/2d/3d Convolution卷积运算:卷积核在输入信号(图像)上滑动,相应位置上进行乘加卷积核:又称为滤波器,过滤器,可认为是某种模式,某种特征卷积过程类似于用一个模板去图像上寻找与它相似的区域,与卷积核模式越相似,激活值越高,从而实现特征提取。AlexNet卷积核可视化,发现卷积核学习到的是边缘、条纹、色彩这一些细节模式:卷积维度:一般情况下,卷积核在几个维度上滑动,就是几维卷原创 2020-09-05 09:16:19 · 701 阅读 · 0 评论 -
Pytorch系列之——模型容器与AlexNet构建
模型容器与AlexNet构建之前介绍了在模型构建过程中有两个非常重要的步骤:构建子模块和拼接子模块,在搭建模型过程中还有一个比较重要的概念——模型容器,这次就主要介绍一下模型容器和AlexNet的构建。模型容器(Containers)AlexNet构建在pytorch提供的模型容器中有三个常用的子模块:第一个是nn.Sequential,它的作用是将多个网络层按顺序包装起来;第二个是nn.ModuleList,它会像python的list一样包装多个网络层,可以像python的list一样进原创 2020-09-04 20:15:35 · 298 阅读 · 0 评论 -
Pytorch系列之——模型创建与nn.Module
模型创建与nn.Module网络模型创建步骤nn.Module属性在学习模型创建步骤之前,回顾一下前面提到的机器学习模型训练的五大步骤,即:数据、模型、损失函数、优化器和迭代训练。这次我们主要谈论模型模块这部分。对于模型模块,首先分为两大部分分别是模型的创建和模型权值的初始化。其中在模型创建模块,有分为构建网络层和拼接网络层这两个子模块,我们通过构建类似卷积层、池化层和激活函数层等子模块,再根据一定的顺序或拓扑结构将这些子模块拼接起来,最后就可以构建成类似LeNet、AlexNet和ResNet原创 2020-09-04 17:54:06 · 457 阅读 · 0 评论 -
Pytorch系列之——Pytorch的Tensor(张量)
张量的构建Tensor概念Tensor创建一:直接创建Tensor创建二:依据数值创建Tensor创建三:依据概率创建张量是什么?张量其实就是一个多维数组,它是标量、向量、矩阵的高维拓展:#### Tensor与VariableVariable是torch.autograd中的数据类型,主要用于封装Tensor,进行自动求导,接下来先来看下torch.autograd.Variable这个数据类型,理解了Variable其实对于理解张量是有帮助的:可以看到,Variable中包含了5个原创 2020-09-02 21:58:55 · 648 阅读 · 0 评论