Pytorch
文章平均质量分 74
青竹aaa
这个作者很懒,什么都没留下…
展开
-
RuntimeError: one of the variables needed for gradient computation has been modified by an inplace o
问题RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.FloatTensor [1, 2]], which is output 0 of SoftmaxBackward, is at version 1; expected version 0 instead. Hint: enable anomaly detec原创 2022-05-01 00:00:00 · 647 阅读 · 0 评论 -
PyTorch环境配置及安装
环境配置温馨提示:为了更好的教程体验,提供视频、阅读地址Youtube: https://www.youtube.com/playlist?list=PLgAyVnrNJ96CqYdjZ8v9YjQvCBcK5PZ-VBiliBili: https://www.bilibili.com/video/av74281036/Github: https://github.com/xiaotudui/PyTorch-Tutorial相关下载:https://pan.baidu.com/s/16k转载 2021-01-27 00:33:10 · 226 阅读 · 0 评论 -
seed() 和torch中manual_seed的作用
描述seed() 方法改变随机数生成器的种子,可以在调用其他随机模块函数之前调用此函数。语法以下是 seed() 方法的语法:import randomrandom.seed ( [x] )我们调用 random.random() 生成随机数时,每一次生成的数都是随机的。但是,当我们预先使用 random.seed(x) 设定好种子之后,其中的 x 可以是任意数字,如10,这个时候,先调用它的情况下,使用 random() 生成的随机数将会是同一个。注意:seed()是不能原创 2021-01-08 00:47:07 · 3999 阅读 · 0 评论 -
PyTorch之迁移学习
目录转移学习的两个主要场景:1.导入相关的包2.加载数据3.可视化部分图像数据4.训练模型5.可视化模型的预测结果6.场景1:微调ConvNet7.场景2:ConvNet作为固定特征提取器完整代码参考文章实际中,基本没有人会从零开始(随机初始化)训练一个完整的卷积网络,因为相对于网络,很难得到一个足够大的数据集[网络很深, 需要足够大数据集]。通常的做法是在一个很大的数据集上进行预训练得到卷积网络ConvNet, 然后将这个ConvNet的参数作为目标任务的初始化原创 2020-12-01 22:59:57 · 1063 阅读 · 0 评论 -
pytorch:optimizer.step()和scheduler.step()
optimizer.step()和scheduler.step()的区别optimizer.step()通常用在每个mini-batch之中,而scheduler.step()通常用在epoch里面,但是不绝对,可以根据具体的需求来做。只有用了optimizer.step(),模型才会更新,而scheduler.step()是对lr进行调整。通常我们有optimizer = optim.SGD(model.parameters(), lr = 0.01, momentum = 0.9)sched转载 2020-12-01 17:04:53 · 1369 阅读 · 0 评论 -
PyTorch :transforms的二十二个方法
本文截取自《PyTorch 模型训练实用教程》,获取全文pdf请点击:https://github.com/tensor-yu/PyTorch_Tutorial文章目录一、 裁剪——Crop 1.随机裁剪:transforms.RandomCrop 2.中心裁剪:transforms.CenterCrop 3.随机长宽比裁剪 transforms.RandomResizedCrop 4.上下左右中心裁剪:transforms.FiveCrop 5.上下左右中心裁剪后翻转: tr转载 2020-12-01 16:23:19 · 731 阅读 · 0 评论 -
PyTorch之数据加载和处理
目录1.下载安装包2.下载数据集3.读取数据集4 编写函数5.数据集类6.数据可视化7.数据变换8.组合转换9.迭代数据集10.后记:torchvision完整代码PyTorch提供了许多工具来简化和希望数据加载,使代码更具可读性。1.下载安装包scikit-image:用于图像的IO和变换 pandas:用于更容易地进行csv解析from __future__ import print_function, divisionimport ...原创 2020-11-29 23:42:17 · 488 阅读 · 0 评论 -
pytorch实现CIFAR10分类,gpu提速
记录本阶段的学习,后期继续学习和改进,代码是完整的,可直接运行import torchimport torchvisionimport torchvision.transforms as transformsimport matplotlib.pyplot as pltimport numpy as npimport torch.nn as nnimport torch.nn.functional as Fimport torch.optim as optim# transforms.原创 2020-11-29 00:04:59 · 543 阅读 · 1 评论 -
transform.Normalize(标准化)
transform.ToTensor(), transform.Normalize((0.5,0.5,0.5),(0.5,0.5,0.5)) 那transform.Normalize()是怎么工作的呢?以上面代码为例,ToTensor()能够把灰度范围从0-255变换到0-1之间,而后面的transform.Normalize()则把0-1变换到(-1,1).具体地说,对每个通道而言,Normalize执行以下操作:image=(image-mean)/std其中mean(...原创 2020-11-28 20:42:29 · 2088 阅读 · 0 评论 -
pytorch-torchvision:datasets和DataLoader参数解释
torchvision.datasets.如果实验中使用 成熟的 图像 数据集合,可以使用torchvision.datasets模块支持–MNIST、Fashion-MNIST、KMNIST、EMNIST、FakeData、COCO、Captions、Detection、LSUN、ImageFolder、DatasetFolder、ImageNet、CIFAR、STL10、SVHN、PhotoTour、SBU、Flickr、VOC、Cityscapes、SBD等常用数据集合。CIFAR10数据原创 2020-11-28 00:23:16 · 3305 阅读 · 0 评论 -
PyTorch-torchvision:transforms
PyTorch 的数据增强我们在安装PyTorch时,还安装了torchvision,这是一个计算机视觉工具包。有 3 个主要的模块:torchvision.transforms: 里面包括常用的图像预处理方法 torchvision.datasets: 里面包括常用数据集如 mnist、CIFAR-10、Image-Net 等 torchvision.models: 里面包括常用的预训练好的模型,如 AlexNet、VGG、ResNet、GoogleNet 等深度学习模型是由数据驱动的,数据转载 2020-11-27 23:51:22 · 167 阅读 · 0 评论 -
pytorch:nn.ReLU(inplace=True)中inplace的作用
在文档中解释是:参数: inplace-选择是否进行覆盖运算意思是是否将得到的值计算得到的值覆盖之前的值,比如:x = x +1即对原值进行操作,然后将得到的值又直接复制到该值中而不是覆盖运算的例子如:y = x + 1x = y这样就需要花费内存去多存储一个变量y所以nn.Conv2d(3, 64, kernel_size=11, stride=4, padding=2),nn.ReLU(inplace=True)的意思就是对从上层网络C原创 2020-11-27 00:03:47 · 450 阅读 · 0 评论 -
pytorch学习:LetNet-5的实现与图解
记录两边非常好的文章,一起看更佳https://www.jianshu.com/p/6a834f1b8f81https://blog.csdn.net/jiadongfengyahoo/article/details/108546765原创 2020-11-26 22:56:14 · 277 阅读 · 0 评论 -
Pytorch之autograd错误:RuntimeError: grad can be implicitly created only for scalar outputs
前言标量是0阶张量(一个数),是1*1的;向量是一阶张量,是1*n的;张量可以给出所有坐标间的关系,是n*n的。所以通常有人说将张量(n*n)reshape成向量(1*n),其实reshape过程中并没有发生大的变化。import torchx=torch.ones(2,2,requires_grad=True)print(x)y=x+2print(y)#如果一个张量不是用户自己创建的,则有grad_fn属性.grad_fn 属性保存着创建了张量的 Function 的引用pri原创 2020-11-26 17:21:40 · 29461 阅读 · 0 评论