![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pytorch
文章平均质量分 92
Dear_林
知其然知其所以然
展开
-
Pytorch学习笔记十七:模型的保存与加载
一、模型的保存与加载当我们的模型训练好之后是需要保存下来,以备后续的使用,那么如何保存和加载模型呢?下面就从三个方面来理解一下。1、序列化与反序列化序列化是指内存中的某一对象保存到硬盘中,以二进制的形式存储下来,这就是一个序列化的过程;反序列化就是将硬盘中的存储的二进制数反序列化到内存中,得到一个相应的对象,这样就可以再次使用这个模型了。如下图所示:序列化和反序列化的目的就是将模型保存并再次使用。pytorch中序列化和反序列化的方法:torch.save(obj, f):obj表示对象,也就原创 2022-05-06 11:46:00 · 2947 阅读 · 0 评论 -
Pytorch学习笔记十六:正则化
一、weight decay(权值衰减)正则化(regularization):减小方差的策略。那什么是方差呢?误差 = 偏差 + 方差 + 噪声偏差:度量了学习算法的期望预测与真实结果之间的偏离程度,即刻画了学习算法的拟合能力;方差:度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响;噪声:表达了当前任务上任何学习算法所能达到的期望泛化误差的下届。可从下图来理解:...原创 2022-05-03 14:00:17 · 7185 阅读 · 0 评论 -
pytorch学习笔记十五:Hook函数与CAM可视化
一、hook函数原创 2022-04-10 21:43:34 · 2993 阅读 · 0 评论 -
pytorch学习笔记十四:TensorBoard
一、TensorBoard的简介与安装TensorBoard是Tensorflow中强大的可视化工具,支持标量、图像、文本、音频和 Embedding 等多种数据可视化。可以在模型的训练过程中绘制loss曲线,监控模型的训练效果,也可以对模型的参数分布,数据分布,图像、音频等各种数据的可视化。下面是TensorBoard的一个界面:TensorBoard是如何显示这个界面的呢?下面来看一下TensorBoard的运行机制从上图中可看出先从python脚本中记录需要可视化的数据,然后生成eventf原创 2022-04-07 22:54:33 · 1303 阅读 · 0 评论 -
pytorch学习笔记十三:学习率的调整策略
pytroch中常见的学习率调整策略原创 2022-03-28 23:38:01 · 2599 阅读 · 0 评论 -
pytorch学习笔记十二:优化器
前言机器学习中的五个步骤:数据 ——> 模型 ——> 损失函数 ——> 优化器 ——> 迭代训练,通过前向传播,得到模型的输出和真实标签之间的差异,也就是损失函数,有了损失函数之后,模型反向传播得到参数的梯度,接下来就是优化器根据这个梯度去更新参数,使得模型的损失不断降低,那么优化器是如何做到的呢?分别从三个方面了解一下,优化器的概念,优化器的属性和方法,常用的优化器。一、什么是优化器pytorch的优化器:管理并更新模型中可学习参数的值,使得模型输出更接近真实标签。在更新参原创 2022-03-22 22:50:26 · 4764 阅读 · 1 评论 -
pytorch学习笔记十一:损失函数
一、损失函数是什么损失函数:衡量模型输出与真实标签之间的差异。与损失函数有关的还有代价函数和目标函数。损失函数(Loss Function):计算一个样本的差异,Loss=f(y^,y)Loss=f\left ( \hat{y},y \right )Loss=f(y^,y)代价函数(Cost Function):计算整个训练集loss的一个平均值,cost=1N∑iNf(y^,y)cos t= \frac{1}{N}\sum_{i}^{N}f\left ( \hat{y},y \right )co原创 2022-02-28 23:20:58 · 1810 阅读 · 1 评论 -
pytorch学习笔记十:权值初始化的十种方法
在上一节中了解了为什么要进行权值初始化以及如何选择权值初始化方法,在这一节来了解一下pytroch中十种权值初始化方法一、权值初始化流程1、先设定什么层用什么初始化方法,初始化方法在 torch.nn.init 中给出;2、实例化一个模型之后,执行该函数,即可完成初始化。示例:def initialize_weights(self): for m in self.modules: # 对卷积层进行初始化 if isinstance(m, nn.Conv2d)原创 2022-02-23 09:47:49 · 1835 阅读 · 0 评论 -
pytorch学习笔记九:权值初始化
一、概念权值初始化是指在网络模型训练之前,对各节点的权值和偏置初始化的过程,正确的初始化会加快模型的收敛,从而加快模型的训练速度,而不恰当的初始化可能会导致梯度消失或梯度爆炸,最终导致模型无法训练。如上图所示的一个基本的CNN网络结构,数据在网络结构中流动时,会有如下的公式(默认没有偏置):在反向传播的过程中,由于是复合函数的求导,根据链式求导法则,会有两组导数,一个是损失函数Cost对Z的导数,一个是损失函数对W的导数,1、损失函数关于状态Z的梯度:2、损失函数关于W的梯度:可以看出,原创 2022-02-21 23:59:11 · 2411 阅读 · 1 评论 -
pytorch学习笔记八:nn网络层——激活函数层
结合pytorch中的激活函数,来总结一下深度学习中的激活函数一、激活函数的概念和作用概念:在神经网络中每个神经元节点接受上一层神经元的输出作为本神经元的输入,并将输出值传入到下一层,输入层神经元节点会将输入属性值直接传递给下一层(隐藏层或输出层)。在多层神经网络中,上层节点的输出和下层节点的输入之间具有一个函数关系,这个函数称为激活函数(又称激励函数)。对激活函数的理解:不使用激活函数的话,神经网络的每层都只是做线性变换,多层叠加后还是线性变换。因为线性模型的表达能力通常不够,所以引入激活函数,加入原创 2022-02-17 21:19:55 · 3274 阅读 · 0 评论 -
pytorch学习笔记七:nn网络层——池化层、线性层
一、池化层池化运算:对信号进行“收集” 并“总结”,类似于水池收集水资源,因而得名池化层。收集:由多变少,图像的尺寸由大变小总结:最大值/平均值下面是最大值池化和平均值池化的示意图:最大值池化就是将滑动窗口中的最大值作为最终的结果;平均值池化是将滑动窗口的平均值作为最终结果。下面看一下pytorch中提供最大值和平均值池化的函数1、nn.Maxpool2dnn.MaxPool2d(kernel_size, stride=None, padding=0, dilation=1, retur原创 2022-02-16 23:39:56 · 4682 阅读 · 0 评论 -
pytroch学习笔记六:nn网络层——卷积层
通过前面两节的学习,已经知道如何搭建一个网络模型以及搭建模型一个非常重要的类nn.Module和模型容器Containers。搭建网络模型有两个基本的步骤:建立子模块和拼接子模块。建立的子模块就包括卷积层、池化层、激活层和全连接层等。所以这一节就从子模块开始。一、卷积运算与卷积层卷积运算:卷积核在输入信号(图像)上滑动,相应位置进行乘加;卷积层:又称为滤波器,过滤器,可以认为是某种模式,某种特征。卷积的过程类似于用一个模版去图像上寻找与它相似的区域,与卷积模式越相似,激活值越高,从而实现特征的提取。原创 2022-02-16 00:03:26 · 3969 阅读 · 0 评论 -
pytorch学习笔记五:模型的创建
在上一节中整理了数据模块的知识点,在本节中主要围绕如何用pytorch构建一个模型来展开,最后用pytorch实现Alexnet网络结构的搭建。下面基于上面的框架来探索每一个模块的实现细节。一、模型的创建上面是LetNet的网络图,由边和节点组成,节点表示输入的数据大小,而边就是数据之间的运算。从上面的LetNet的网络中可以看出,网络接受一个输入,然后经过运算得到一个输出,在网络结构的内部,又分为多个子网络层进行拼接组成,这些子网络层之间的拼接 配合,最终得到我们想要的输出。所以通过上面的分析原创 2022-02-14 15:07:13 · 1223 阅读 · 0 评论 -
pytorch学习笔记四:数据的预处理模块
transforms是pytorch中常用的图像预处理方法,这个在torchvision计算机视觉工具包中。在安装pytorch时顺便安装了torchvision,在torchvision中,有三个主要的模块:● torchvision.transforms:常用的图像预处理方法,比如:标准化、中心化、旋转、翻转等;● torchvision.datasets:常用的数据集的dataset实现,例如:MNIST、CIFAR-10、ImageNet等;● torchvision.models:常用的预训原创 2022-02-08 23:22:47 · 2371 阅读 · 0 评论 -
pytroch学习笔记三:数据的读取机制
机器学习的五大模块:数据模块又可分为以下几部分:● 数据的收集:Image、label● 数据的划分:train、test、valid● 数据的读取:DataLoader,有两个子模块,Sampler和Dataset,Sampler是对数据集生成索引index,DataSet是根据索引读取数据● 数据预处理:torchvision.transforms模块所以这一节主要介绍pytorch中数据的读取模块一、DataLoadertorch.utils.data.DataLoader():构建原创 2022-01-29 11:34:38 · 4612 阅读 · 0 评论 -
pytorch学习笔记二:动态图、自动求导及逻辑回归
一、计算图计算图是描述运算的有向无环图,有两个主要的元素:节点(Node)和边(Edge),节点表示数据,如向量,矩阵,张量。边表示运算,如加减乘除等。用计算图表示: y=(x+w)∗(w+1)y = \left ( x+w \right ) \ast \left ( w+1 \right )y=(x+w)∗(w+1) ,如下所示:从上面可以看出y = a × b,而a = w + x, b = w + 1,只要给出x和w的值,即可根据计算图得出y的值。计算图与梯度求导求y对w的导数,根据求导规原创 2022-01-25 14:32:58 · 1141 阅读 · 0 评论 -
pytorch学习笔记一:张量的操作与线性回归
目录一、张量的简介1、张量的基本概念2、张量的属性二、张量的创建1、直接创建2、依数值创建3、依概率创建三、张量的操作1、张量的拼接2、张量的切分3、张量的索引4、张量变换5、算术运算6、高级操作四、线性回归模型一、张量的简介1、张量的基本概念张量是一个【多维数组】,它是一个标量、向量、矩阵的高维拓展。2、张量的属性在 PyTorch 0.4.0 之前,torch.autograd 包中存在 Variable 这种数据类型,主要是用于封装 Tensor,进行自动求导。Variable 主要包含下原创 2022-01-24 01:16:30 · 1934 阅读 · 0 评论 -
pytorch开发环境的安装
目录一、Anaconda的安装二、pycharm安装三、cuda和cudnn安装四、pytorch安装五、用pycharm运行程序一、Anaconda的安装官网下载地址:链接下载完成后,双击程度,按提示进行安装等待安装即可!win+r,输入cmd打开,输入condaconda一些操作命令● 显示所有的虚拟环境 conda env list● 创建虚拟环境 conda create -n env_name python=3.6● 创建虚拟环境同时安装第三方库 conda原创 2022-01-24 00:42:23 · 333 阅读 · 0 评论