![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Pytorch
Legolas~
这个作者很懒,什么都没留下…
展开
-
torch的cumsum
函数作用:在张量的某个维度上进行累加从语言描述上比较抽象,看下以下代码加以说明(针对二维张量):import numpy as npx = np.array([[1, 2, 3], [4, 5, 6]])x = torch.from_numpy(x)这时x的结果为:tensor([[1, 2, 3], [4, 5, 6]])使用cumsum:x_ = x.cumsum(dim=0)x_的结果为:tensor([[1, 2, 3], [5, 7, 9原创 2022-05-04 13:56:09 · 1070 阅读 · 0 评论 -
PyTorch:提取ResNet152线性层之前的CNN
很多情形下,我们需要拿在ImageNet上经过fine-tuning的ResNet来作为任务的backbone,通常我们只会选取预训练好的ResNet的CNN部分而非线性层,具体代码操作如下:import torchimport torch.nn as nnfrom torchvision import modelsclass ResNet152(nn.Module): def __init__(self, pretrained, path): super(ResNet15原创 2021-05-05 20:27:29 · 479 阅读 · 2 评论 -
cuda安装精简
使用torch的一定注意cuda版本必须要跟torch版本对应,网上好多网友写的博客都没提到,目前cuda官网的版本是11.0但是我当时在torch官网下载的是支持cuda10.2版本的torch。cuda 10.2 链接是cuda10.2版本的下载链接,下载之后按照提示步骤一步步安装即可非常简单。两种方法测试是否安装成功:1.进入cmd,输入nvcc -V,会出现cuda的版本号等相关信息。2.如果正在用torch的话,直接输torch.cuda.is_available(),如果返回True则原创 2020-09-06 17:44:10 · 1417 阅读 · 0 评论 -
torch的clamp和clamp_
torch.clamp(input, min, max, out=None)clamp:将张量中的每一个元素变为区间[min, max]之间的值。官方文档给出了一个分段函数用来对元素进行区间变化:举个栗子:而clamp和clamp_的区别就在于前者是值拷贝,并不改变x1本身,最终需要变量来接收,然而后者则直接改变x1自身的值。...原创 2020-09-03 08:36:49 · 962 阅读 · 0 评论 -
torch的mm和mul的区别
torch.mm是矩阵乘法,torch.mul是矩阵对应位置处元素相乘。原创 2020-09-03 07:55:55 · 327 阅读 · 0 评论 -
【迁移学习】pytorch中如何加载已经训练好的模型
torchvision的models中包含很多用于图像分类、视频分类、目标检测等模型,例如vgg、resnet、inception v3等,我们既可以加载已经训练好的模型(预训练模型均是在ImageNet上进行训练的),也可以加载未经训练的模型,方法有两种,拿vgg来说:torchvision.models.vgg19(pretrained=False, progress=True, **kwargs)pretrained: 为True时,返回在ImageNet上的预训练模型。progress: 为原创 2020-08-22 19:45:58 · 3583 阅读 · 0 评论 -
【深度学习】torch自动更新学习率(一)
官方文档如下:torch.optim.lr_scheduler.StepLR(optimizer, step_size, gamma=0.1, last_epoch=-1)Parameters:optimizer(Optimizer) – Wrapped optimizer.step_size(int) – Period of learning rate decay.gamma(float) – Multiplicative factor of learning rate decay. Defa原创 2020-08-21 17:29:57 · 1116 阅读 · 0 评论 -
【深度学习】pytorch的卷积层的padding
torch.nn.Conv2d()为torch中的卷积层,参数如下: def __init__(self, in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zero原创 2020-08-07 17:18:14 · 3305 阅读 · 0 评论 -
【深度学习】Pytorch学习笔记(六)
1.numpy.ndarray与tensor之间的转换import cv2 as cvfrom torchvision import transformsimage = cv.imread("test.jpg")transform = transforms.Compose([ transforms.ToTensor()])image_tensor = transform(image)转为tensor后通道数变成了第一维度,并且tensor中的元素全部在区间[0.0, 1.0]。原创 2020-07-29 18:36:53 · 155 阅读 · 0 评论 -
【深度学习】Pytorch学习笔记(五)
pytorch实现卷积神经网络(执行效率相对于keras慢太多)import torchimport warningsimport torchvisionfrom torchvision.datasets import MNISTfrom torch.utils.data import DataLoaderwarnings.filterwarnings("ignore")BATCH_SIZE = 32train_data = MNIST( root='./mnist',原创 2020-07-28 11:46:38 · 156 阅读 · 0 评论 -
【深度学习】Pytorch学习笔记(四)
torch.nn.Sequential快速搭建神经网络torch.nn.Sequential实际仍然继承的是Module类,其内部某些方法依然调用的是父类Module的方法,只不过Sequential的__init__()可以接收用户堆叠的所有层结构(包括激活函数)的初始化操作,非常方便。import torchimport warningsimport numpy as npimport matplotlib.pyplot as pltfrom sklearn.metrics import a原创 2020-07-27 17:58:49 · 160 阅读 · 0 评论 -
【深度学习】Pytorch学习笔记(三)
实现二分类神经网络(数据线性可分):import torchimport torch.nn.functional as Fimport numpy as npimport warningsimport matplotlib.pyplot as pltfrom sklearn.metrics import accuracy_scorewarnings.filterwarnings("ignore")x1 = torch.from_numpy(np.random.uniform(0.5, 2原创 2020-07-26 18:21:41 · 335 阅读 · 0 评论 -
【深度学习】Pytorch学习笔记(二)
pytorch搭建神经网络进行回归:import torchimport imageioimport torch.nn.functional as Fimport matplotlib.pyplot as pltx = torch.sort(5 * torch.rand(100, 1), dim=0)[0]y = torch.sin(x)y[::5, :] += 3 * (0.5 - torch.rand(20, 1))class Model(torch.nn.Module):原创 2020-07-25 18:24:38 · 186 阅读 · 0 评论