Pytorch详细教程
文章平均质量分 96
PyTorch是由Meta AI(Facebook)人工智能研究小组开发的一种基于Lua编写的Torch库的Python实现的深度学习库,目前被广泛应用于学术界和工业界
慕溪同学
主要研究方向疵点精准检测与纤维检测分割,写博客记录自己的学习过程和知识点
展开
-
pytorch01:概念、张量操作、线性回归与逻辑回归
2017年1月,FAIR (FacebookAI Research) 发布PyTorch,PyTorch是在Torch基础上用python语言重新打造的一款深度学习框架,Torch 是采用Lua语言为接口的机器学习框架,但因Lua语言较为小众导致Torch知名度不高。张量是一个多维数组,它是标量、向量、矩阵的高维拓展在深度学习中,张量(tensor)是一个广泛使用的数学和计算工具,它是多维数组的泛化。原创 2023-12-27 10:58:56 · 1360 阅读 · 1 评论 -
pytorch12:GPU加速模型训练
我们在模型训练当中想要提高训练速率,需要在以下三个地方添加gpu将模型放到gpu上:resnet18_ft.to(device)训练过程中数据: inputs, labels = inputs.to(device), labels.to(device)验证过程中数据: inputs, labels = inputs.to(device), labels.to(device)原创 2024-01-11 22:02:20 · 1371 阅读 · 2 评论 -
pytorch11:模型加载与保存、finetune迁移训练
模型的保存与加载,已经模型微调与迁移训练。原创 2024-01-11 21:59:31 · 844 阅读 · 0 评论 -
pytorch10:正则化(weight_decay、dropout、Batch Normalization)
减少过拟合:通过对模型参数施加惩罚,使模型更倾向于选择简单的参数配置,减少对训练数据中噪声和细节的过度拟合,从而提高模型在测试集或新数据上的表现。提高泛化能力:正则化方法有助于提高模型对未见过数据的适应能力,使模型更好地适应多样化的输入,从而提高模型的泛化能力。控制模型复杂度:正则化方法可以限制模型的复杂度,防止模型学习过于复杂的特征和模式,使得模型更具有通用性和可解释性。原创 2024-01-11 11:06:03 · 1187 阅读 · 0 评论 -
pytorch09:可视化工具-TensorBoard,实现卷积核和特征图可视化
当我们在模型训练过程中想要将部分参数进行可视化,例如:精确度、损失等参数,想通过一个可视化工具实时观察,可以使用tensorboard工具。在使用pytorch进行一些深度学习测试的过程中,首先将生成的数据使用Python脚本进行保存,将数据保存到电脑硬盘当中,然后使用tensorboard将硬盘中的数据绘制成图,在浏览器端展示出来。原创 2024-01-08 16:40:57 · 1564 阅读 · 0 评论 -
pytorch08:学习率调整策略
我们可以设置学习率逐渐从小变大观察精确度的一个变化,下面这幅图,当学习率为0.055左右的时候模型精确度最高,当学习率大于0.055的时候精确度出现下降情况,所以在模型训练过程中我们可以设置学习率为0.055作为我们的初始学习率。一般在模型训练过程中,在开始训练的时候我们会设置学习率大一些,随着模型训练epoch的增加,学习率会逐渐设置小一些。功能:监控指标,当指标不再变化则调整,例如:可以监控我们的loss或者准确率,当其不发生变化的时候,调整学习率。调整方式:lr = lr * gamma。原创 2024-01-05 11:15:04 · 1738 阅读 · 0 评论 -
pytorch07:损失函数与优化器
机器学习模型训练有以下几个步骤,优化器是在哪一步开始使用呢?将数据输入到模型当中会得到一个output值,将output值和target目标值放入到损失函数计算损失,损失使用反向传播的方法求出训练过程中每一个参数的梯度,优化器拿到梯度,使用优化策略,减少损失。原创 2024-01-05 09:01:55 · 1274 阅读 · 0 评论 -
pytorch06:权重初始化
增加tanh激活函数之后,随着网络层的增加,标准差越来越小,从而会导致梯度消失的现象,下面将说明Xavier方法与Kaiming方法是如何解决该问题。观察第二个隐藏层的权值的梯度是如何求取的,根据链式法则,可以得到如下计算公式,会发现w2的梯度依赖上一层的输出值H1;根据1,2,3,可以得出,x,y的方差计算公式,当x,y的期望值都为0的时候,x,y的方差等于x的方差乘以y的方差。主要功能:计算激活函数的方差变化尺度(也就是输入数据的方差/经过激活函数之后的方差)原创 2024-01-03 16:19:47 · 1644 阅读 · 1 评论 -
pytorch05:卷积、池化、激活
卷积层常见概念以及卷积操作;池化层相关概念以及池化相关代码实现;线性层激活函数的作用,以及常见的线性激活函数。原创 2023-12-29 18:27:49 · 1401 阅读 · 0 评论 -
深度学习seed()函数随机种子详解
seed() 函数用于设置随机数生成器的种子,它在生成随机数时提供了可重复性。这个种子是生成随机数的起始点,相同种子生成的随机数序列是确定性的,也就是说,在相同的种子下,每次生成的随机数序列都是一样的。在很多编程语言和库中,seed() 函数被用于初始化伪随机数生成器。在 Python 中,它常常与 random 模块、numpy 库或者机器学习库(比如 PyTorch、TensorFlow)中的随机数生成相关的函数一起使用。原创 2023-12-29 10:28:49 · 11831 阅读 · 0 评论 -
pytorch04:网络模型创建
常见的搭建神经网络的方法,通过实践掌握网络搭建的流程原创 2023-12-28 19:10:38 · 1315 阅读 · 0 评论 -
pytorch03:transforms常见数据增强操作
transforms常见数据增强操作以及实战!原创 2023-12-27 22:38:17 · 2321 阅读 · 1 评论 -
pytorch02:数据读取DataLoader与Dataset、数据预处理transform
数据读取DataLoader与Dataset、数据预处理transform原创 2023-12-27 16:20:12 · 1684 阅读 · 1 评论 -
pytorch深度学习框架看着一篇就够了!
PyTorch 是一个 Torch7 团队开源的 Python 优先的深度学习框架,提供两个高级功能:强大的 GPU 加速 Tensor 计算(类似 numpy)构建基于 tape 的自动升级系统上的深度神经网络 .原创 2023-10-23 14:40:37 · 2150 阅读 · 0 评论 -
pytorch实现迁移训练-resnet18训练花朵识别模型【深度学习】
pytorch训练迁移训练模型思路,该文章首先对rennet除全连接层之外所有网络冻结训练,然后解冻所有网络层进行训练,比较两次训练验证集的精度;原创 2023-06-28 17:42:40 · 1415 阅读 · 1 评论 -
with torch.no_grad():用法详解
tensor的requires_grad的属性默认为False,若一个节点(叶子变量:自己创建的tensor)requires_grad被设置为True,那么所有依赖它的节点requires_grad都为True(即使其他相依赖的tensor的requires_grad = False)当requires_grad设置为False时,反向传播时就不会自动求导了,因此大大节约了显存或者说内存。在该模块下,所有计算得出的tensor的requires_grad都自动设置为False。原创 2023-03-26 15:28:12 · 1167 阅读 · 0 评论