
pytorch
文章平均质量分 82
pytorch学习和使用记录
非晚非晚
一往无前,不急不躁,生命不熄,折腾不止!
展开
-
pytorch中使用add_module添加网络子模块
之前有一篇文章介绍了使用Sequential、ModuleList和ModuleDict添加网络,除此之外,我们还可以通过add_module()添加每一层,并且为每一层增加了一个单独的名字。add_module()可以快速地替换特定结构可以不用修改过多的代码。add_module的功能为Module添加一个子module,对应名字为name。使用方式如下...原创 2022-06-15 11:47:55 · 5930 阅读 · 0 评论 -
上采样、下采样以及Pytorch中的卷积与反卷积(转置卷积)方法介绍(conv2d和convTranspose2d)
卷积操作可以压缩整合图片特征,让[通道, 宽, 高]分别为[c,h,w][c,h,w]的特征图片通过Conv2d。变为更多的通道(维度)cc,更小的尺寸[h,w][h,w]。也就是说,当输入为一组图片[n,c,h,w][n,c,h,w]格式时,输出也为[n,c,h,w][n,c,h,w]格式。转置卷积,也称为反卷积(deconvlution)和分部卷积(fractionally-strided convolution)。为卷积的逆操作,即把特征的维度压缩,但尺寸放大。注意它 不是真正意义上 的卷积的逆操作。原创 2022-05-30 09:43:51 · 14491 阅读 · 3 评论 -
pytorch中model.eval()和torch.no_grad()的区别
在PyTorch中进行validation时,会使用model.eval()切换到测试或者称为验证模式下。model.eval()仅作用于dropout层和batchnorm层,让其与训练状态不同,相当于 dropout的参数为0 ,batchnorm也 不再更新和计算 mean和var值,而是使用训练阶段学习到的mean和var。...原创 2022-06-07 17:12:11 · 1503 阅读 · 0 评论 -
pytorch中涉及cuda的使用介绍
1. 设置可见GPU的个数2. GPU的常用操作(1)常用操作列表(2)torch.cuda.is_available()(3)设置GPU默认使用编号3. 在GPU上使用数据3.1 直接创建法3.2 CPU转移至GPU(1)方法一:tensor.to()(2)方法二:tensor.cuda()(3)方法三:tensor.type()(4)方法四:torch.from_numpy(np_labels).cuda()4. 一般哪些对象可以使用GPU(1)网络模型 (module)(2)数据(3)损失函数原创 2022-05-15 18:00:00 · 7997 阅读 · 1 评论 -
PyTorch中的Sequential、ModuleList和ModuleDict用法总结
nn.Sequential内部实现了forward函数,因此可以不用写forward函数。而nn.ModuleList和nn.ModuleDict则没有实现内部forward函数。nn.Sequential需要严格按照顺序执行,而其它两个模块则可以任意调用。原创 2022-04-11 22:49:15 · 9895 阅读 · 3 评论 -
pytorch中copy_()、detach()、data()和clone()操作区别小结
clone创建一个tensor与源tensor有相同的shape,dtype和device,不共享内存地址,但新tensor(b)的梯度会叠加在源tensor(a)上。需要注意的是,b = a.clone()之后,b并非叶子节点,所以不可以访问它的梯度。detach()函数返回与调用对象tensor相关的一个tensor,此新tensor与源tensor共享数据内存(那么tensor的数据必然是相同的),但其requires_grad为False,并且不包含源tensor的计算图信息。...原创 2022-06-20 17:23:26 · 3122 阅读 · 1 评论 -
pytorch中的squeeze和unsqueeze的用法小结
squeeze的作用是对tensor变量进行维度压缩,去除维数为1的维度。unsqueeze的作用是对数据维度进行扩充,给指定位置加上维数为1的维度。请注意,不管是squeeze还是unsqueeze操作,都不会影响原先的张量维度,所以下面的操作中,都将压缩和解压缩操作赋值给了原张量。原创 2022-03-31 22:02:32 · 7417 阅读 · 4 评论 -
【pytorch实战学习】第七篇:tensorboard可视化介绍
在训练神经网络时,我们希望能更直观地了解训练情况,包括损失曲线、输入图片、输出图片、卷积核的参数分布等信息。这些信息能帮助我们更好地监督网络的训练过程,并为参数优化提供方向和依据。tensorboard原本是tensorflow的可视化工具,pytorch从1.2.0开始支持tensorboard。之前的版本也可以使用tensorboardX代替。原创 2022-03-26 19:31:46 · 3673 阅读 · 0 评论 -
【pytorch实战学习】第六篇:CIFAR-10分类实现
本文是基于pytorch官网教程,然后在此基础上,写了一些自己的理解和修改。CIFAR-10数据集共有60000张彩色图像,这些图像是32*32,分为10个类,每类6000张图。需要说明的是,这10类都是各自独立的,不会出现重叠。题外话,MNIST数据集是只有1个通道的灰度图,尺寸大小为28*28。原创 2022-03-22 09:28:51 · 12392 阅读 · 4 评论 -
【pytorch学习实战】第五篇:卷积神经网络实现MNIST手写数字识别
我们在这里尽可能的讲解一些实战编程方面的内容,所以我们会尽可能避免过多地介绍基础理论知识,如果想要深入了解卷积神经网络CNN,可以访问本人之前写过的一篇文章。我们这里使用的CNN包括了卷积层和池化层,下面我们对它们进行简要介绍。原创 2022-03-21 09:42:12 · 5580 阅读 · 3 评论 -
pytorch中view的使用小结
pytorch中的view类似于numpy中的resize和reshape,也就是说它的作用是重新组合tensor数据。原创 2022-03-18 14:12:33 · 2700 阅读 · 0 评论 -
pytorch中的数据导入之DataLoader和Dataset的使用介绍
在使用Pytorch构建和训练模型的过程中,经常需要把原始数据(图片、文本等)转换为张量的格式。对于小数据集,我们可以手动导入,但是深度学习中,数据集往往是比较大的,这时pytorch的数据导入功能便发挥了作用,Pytorch导入数据主要依靠torch.utils.data.DataLoader和torch.utils.data.Dataset这两个类来完成。...原创 2022-03-17 16:55:36 · 21508 阅读 · 2 评论 -
【pytorch学习实战】第四篇:MNIST数据集的读取、显示以及全连接实现数字识别
MNIST包含70,000张手写数字图像: 60,000张用于训练,10,000张用于测试。图像是灰度的,28x28像素的,并且居中的,以减少预处理和加快运行。下面使用torchvision读取数据,并使用DataLoader加载数据,最后使用matplotlib显示其中6张图片数据和对应的真值。原创 2022-03-20 09:30:20 · 22205 阅读 · 4 评论 -
【pytorch学习实战】第三篇:逻辑回归
logistic回归的因变量可以是二分类的,也可以是多分类的,一般情况下,我们比较常用的是二分类,也更容易理解,多分类问题可以使用softmax方法进行处理。原创 2022-03-16 09:56:13 · 2093 阅读 · 0 评论 -
【pytorch学习实战】第二篇:多项式回归
在上一篇文章中我们讲了线性回归,但是很多时候,仅仅使用线性回归拟合出来的直线并不能满足我们的需求,也就是精度欠佳,所以更多的时候我们使用多项式回归来处理拟合问题。其实多项式回归,原理和线性回归是一样的。原创 2022-03-15 09:32:10 · 1945 阅读 · 0 评论 -
【pytorch学习实战】第一篇:线性回归
数据生成:生成y=3x+10的数据,并携带一定的误差(torch.rand)数据显示:使用matplotlib画出原始数据自定义模型:使用nn.Linear(1,1)指定输入输出的维度。损失函数和优化器的选择:MSE损失和SGD优化器。开始训练:迭代num_epochs。显示结果:显示最终的线性回归效果。原创 2022-03-14 16:07:45 · 2977 阅读 · 0 评论 -
【pytorch学习笔记】第五篇——训练分类器
1. 数据2. 训练图像分类器2. 1 加载并标准化 CIFAR102.2 训练图像3. 定义卷积神经网络、损失函数、优化器、训练网络和保存模型4. 测试自己的模型5. 在GPU上进行训练原创 2021-10-25 21:26:04 · 1741 阅读 · 0 评论 -
【pytorch学习笔记】第四篇——神经网络
上一章已经了解了自动梯度Autograd,pytorch中可以使用torch.nn构建神经网络,nn依赖于autograd来定义模型并对其进行微分。nn.Module包含层,以及返回output的方法forward(input)。原创 2021-10-24 10:21:58 · 444 阅读 · 0 评论 -
【pytorch学习笔记】第三篇——自动梯度(torch.autograd)
训练神经网路(NN, neural network)分为正向传播和反向传播。在正向传播中,NN 对正确的输出进行最佳猜测。 它通过其每个函数运行输入数据以进行猜测。在反向传播中,NN 根据其猜测中的误差调整其参数。 它通过从输出向后遍历,收集有关函数参数(梯度)的误差导数并使用梯度下降来优化参数来实现。原创 2021-10-17 16:41:45 · 2043 阅读 · 0 评论 -
【pytorch学习笔记】第二篇——张量
张量是一种特殊的数据结构,在pytorch中,神经网络的输入、输出和网络的参数等数据,都是通过张量的形式进行描述的。张量和Numpy中的ndarrays很像,只不过张量可以运行在GPU或者其它专用硬件上,从而达到加速的效果。原创 2021-10-11 22:32:54 · 464 阅读 · 0 评论 -
【pytorch学习笔记】第一篇——环境搭建
由于使用的需要,从现在开始陆续学习并记录pytorch相关的使用,首先这篇介绍pytorch的环境搭建,全部内容都经过实际操作,而且都是以最简单、安全、高效的方式进行安装。原创 2021-09-28 09:51:19 · 948 阅读 · 0 评论