Pytorch--学习笔记

安装

登录官网 https://pytorch.org/ ,选择环境,就会给出相应的安装命令,很智能。
​​​​安装环境选择

pip3 install https://download.pytorch.org/whl/cu80/torch-1.0.1.post2-cp35-cp35m-linux_x86_64.whl
pip3 install torchvision

使用

cuda

看看是否支持cuda

torch.cuda.is_available()

程序开头添加,可以提升一点训练速度,并且没有额外开销。

torch.backends.cudnn.benchmark = True

torch.from_numpy

  • numpy中的ndarray转换成pytorch中的tensor:torch.form_numpy()
  • pytorch中的tensor转换成numpy中的ndarray:numpy()
data = torch.from_numpy(np.array([im.transpose((2, 0, 1)).astype('float32') / 255.]))

Variable

torch.autograd.Variable是Autograd的核心类,它封装了Tensor,并整合了反向传播的相关实现。
Variable的三个属性:

  • data:保存Tensor,是本体的数据。
  • grad:保存data的梯度,本体是个Variable而非Tensor,与data形状一致。
  • grad_fn:指向function对象,用于反向传播的梯度计算之用。
from torch.autograd import Variable
#Variable默认是不要求梯度的,如果需要求梯度,需要说明(requires_grad=True)
data = Variable(data)

torch.argmax

函数功能:返回指定维度最大值的索引。
在这里插入图片描述

torch.nn.Upsample(size=None, scale_factor=None, mode=‘nearest’, align_corners=None)

在这里插入图片描述

随机数

为CPU设置种子用于生成随机数,使每次得到的随机数是固定的 。

torch.manual_seed(config.SEED)

为所有的GPU设置随机种子,使每次得到的随机数是固定的 。

torch.cuda.manual_seed_all(config.SEED)

模型特征图大小计算

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
常用卷积保持特征图大小不变的参数
在这里插入图片描述

ignite

Ignite 是 PyTorch 官方发布的一个高抽象库,可以使训练代码简洁高效,early stopping,模型 checkpoint 等各类训练指标轻松使用,达到更好地使用 PyTorch 训练神经网络的目的。

安装

pip install pytorch-ignite

torchvision

torchvision独立于Pytorch,需通过下面的命令进行安装。

pip install torchvision

torchvision 主要包含以下三部分:

  • models : 提供深度学习中各种经典的网络结构以及训练好的模型,包括Alex Net, VGG系列、ResNet系列、Inception系列等;
  • datasets:提供常用的数据集加载,设计上都是继承torch.utils.data.Dataset,主要包括MMIST、CIFAR10/100、ImageNet、COCO等;
  • transforms: 提供常用的数据预处理操作,主要包括对Tensor及PIL Image对象的操作。

导入预训练模型。如果只需要网络结构,不需要用预训练模型的参数来初始化pretrained设置为False。

from torchvision.models import resnet101

model = resnet101(pretrained=True)

可视化工具Visdom

安装

pip install visdom 

启动服务

python -m visdom.server

版本兼容问题

1.10版本加载0.3.1版本训练的模型

network.load_state_dict(torch.load(save_path))
# 替换为
model_dict = torch.load(save_path)
model_dict_clone = model_dict.copy()
for key, value in model_dict_clone.items():
    if key.endswith(('running_mean', 'running_var')):
        del model_dict[key]
network.load_state_dict(model_dict, False)

UserWarning: volatile was removed and now has no effect. Use with torch.no_grad(): instead.

self.real_A = Variable(self.input_A, volatile=True)
#替换为
 with torch.no_grad():
            self.real_A = Variable(self.input_A)

IndexError: invalid index of a 0-dim tensor. Use tensor.item() to convert a 0-dim tensor to a Python number

print(batch_idx, '/', args.maxIter, ':', nLabels, loss.data[0])
#替换为
print(batch_idx, '/', args.maxIter, ':', nLabels, loss.item())

RuntimeError: CUDA out of memory

model.test()
#替换为
with torch.no_grad():
    model.test()

参考文献

https://pytorch.org/
torch小技巧
torch.manual_seed()
PyTorch 的高抽象库 Ignite 简介
Pytorch——计算机视觉工具包:torchvision
PyTorch源码解读之torchvision.models
可视化利器Visdom
this may be expected because InstanceNorm2d does not track running stats by default since 0.4.0
pytorch出现RuntimeError: CUDA out of memory.
Pytorch 记录
pytorch报错UserWarning: invalid index of a 0-dim tensor.
Pyorch之numpy与torch之间相互转换
Pytorch之认识Variable
Pytorch之Variable
PyTorch基本用法(二)——Variable
pytorch-handbook
PyTorch还是TensorFlow?这有一份新手深度学习框架选择指南
PyTorch简明笔记[1]-Tensor的初始化和基本操作
Pytorch(笔记2)–Conv2d卷积运算
pytorch torch.nn 实现上采样——nn.Upsample

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pytorch-09.ipynb是一个使用PyTorch库进行深度学习实践的笔记本文件。PyTorch是一个基于Python的深度学习框架,它提供了方便简洁的API接口,使得深度学习模型的构建和训练变得更加容易。 在这个笔记本文件中,我推测可能包括以下内容: 1. 张量的基本概念和操作:张量是PyTorch中最基本的数据类型,类似于Numpy中的多维数组。这个笔记本可能会介绍如何创建和操作张量,以及张量在深度学习中的应用。 2. 自动梯度计算:PyTorch通过自动梯度计算(Autograd)模块实现了计算图和反向传播。这个笔记本可能会介绍如何使用PyTorch的autograd模块来计算张量的导数,并利用导数进行模型参数的更新。 3. 模型构建和训练:深度学习模型的构建和训练是PyTorch的核心功能。这个笔记本可能会介绍如何使用PyTorch构建各种类型的神经网络模型(如全连接网络、卷积神经网络和循环神经网络)并进行训练。 4. 数据加载和预处理:在深度学习中,数据的加载和预处理是非常重要的一步。这个笔记本可能会介绍如何使用PyTorch的数据加载器和数据转换工具进行数据的加载和处理。 5. 模型性能评估和调优:在实际应用中,评估模型性能和进行调优是不可或缺的步骤。这个笔记本可能会介绍如何使用PyTorch进行模型性能的评估,并介绍一些常见的调优方法,如学习率调整、正则化和dropout等。 总之,这个笔记本文件可能会提供一些关于PyTorch库的基本操作和深度学习模型构建的实践指南,帮助读者更好地理解和应用PyTorch进行深度学习任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值