![](https://img-blog.csdnimg.cn/3e3b6c308cc64f65afc475bbfe41dfb2.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
pytorch
文章平均质量分 87
记录pytorch生态中的工具与tutorial学习笔记。
凯子要面包
这个作者很懒,什么都没留下…
展开
-
Numpy(高维数组) |Pytorch(张量) 索引读操作笔记
张量是一种多维单一数据类型数组,pytorch 索引张量继承 numpy 索引多维数组。两者均遵守 x[obj] 索引语法,obj 称为索引对象。根据 obj 的不同情形,有“基础索引”, “高级索引”, “字段访问(field access)”三种形式, 本文主要记录前两者。 基础索引当索引对象是元组时,遵守基础索引规则, 注意x1, x2, x3 是元组 (x1, x2, x3)的等价形式。当只需索引单一元素时,类似于标准 python 序列对象索引操作,索引号从0开始, 支持负数。当原创 2022-04-13 16:29:45 · 2510 阅读 · 0 评论 -
【Pytorch】交叉熵损失学习笔记
记录交叉熵及pytorch中的交叉熵实现的学习过程。原创 2022-04-11 10:41:18 · 1200 阅读 · 0 评论 -
【pytorch】Dataloader学习笔记
总结Pytorch中加载数据集的核心类为torch.utils.data.Dataloder,Dataloader中最核心的参数为dataset,表示需加载的源数据集。dataset有两种类型:“map-style dataset” 与 “iterable-style dataset”, map-style dataset可以理解为“每一样本值都可以通过一个索引键获取”, iterable-style dataset可以理解为“每一条样本值顺序存储在容器中,没有索引键”。参数sampler 与参数shuf原创 2021-12-02 11:27:24 · 3770 阅读 · 0 评论 -
pytorch中的卷积与池化
前言使用pytorch搭建TextCNN时,需要使用卷积层与池化层,以下对pytorch中的卷积及池化层的特点进行记录。pytorch中卷积与池化需要重点关注input_channels、output_channles、kernel_size,即“输入张量通道数量、输出张量通道数量、核大小。” 卷积层Conv1d一维卷积是指卷积核张量是一维,其调用形式为:torch.nn.Conv1d(in_channels: int, out_channels: int, kernel_size:原创 2021-02-08 11:03:03 · 1536 阅读 · 1 评论 -
【pytorch】自定义autograd中的Function
前言自定义pytorch中动态图的operator(算子),需要继承torch.autograd.Function类,并实现forward与backward方法,在使用自定义的算子时,需要通过apply方法。下面记录官网资料给的两个例子。实例一 class MyExp(torch.autograd.Function): """ 前向:y = exp(x), 微分:dydx = exp(x) """ @staticmethod def forwar翻译 2021-02-07 09:56:03 · 952 阅读 · 0 评论 -
【pytorch】torch.autograd的简单介绍
前言pytorch中的自动微分引擎,主要是服务神经网络的训练的,神经网络可以看作一个复杂函数,给其输入,会输出对应的结果,给出预测结果的过程叫做前向传播。网络预测的结果与实际的标签数据可能会有出入,这样就会产生误差,通过计算误差对模型中可学习的参数的梯度,并且将梯度存储在可学习参数的grad属性中,然后根据梯度下降优化算法,使用优化器更新模型参数,从而学习数据分布的规律。 计算梯度更新参数的过程就是反向传播的过程。本文主要是记录反向传播中的梯度计算与参数更新的一些基础知识点,加深记忆。翻译 2021-02-01 13:36:03 · 636 阅读 · 0 评论 -
【pytorch】模型保存与加载
前言学习pytorch框架,掌握模型保存与加载是必不可少的环节,本文记录pytorch模型保存与加载的主要工具,和各种场景。 主要工具torch.savetorch.save方法使用python中的pickle模块,保存对象到硬盘文件,注意对象不仅限于模型,还可以保存tensor、字典等其它对象。其签名如下:torch.save(obj, f: Union[str, os.PathLike, BinaryIO], pickle_module=<module 'pickle' f翻译 2021-01-27 10:22:24 · 1210 阅读 · 0 评论 -
【pytorch】加载部分模型参数及冻结部分参数
前言结论:1)部分加载模型参数的关键就是自定义选取训练好的模型的state_dict的键值对,然后更新到需要加载模型参数的新模型的state_dict中。 2)冻结部分参数的关键就是自定义设置需冻结的参数的requires_grad属性值为False,并在优化器中传入参数时,过滤掉requires_grad=False的这部分参数,使其不参与更新。 下文通过实例记录如何在pytorch中只加载部分参数,及冻结部分参数进行训练。 背景如下,有一个基于bert的内容分类器和基于bert的序列标原创 2021-01-26 15:59:36 · 4727 阅读 · 1 评论