Pytorch 0.4.0迁移指南(与之前版本编程上的不同点)

2024-02-19 15:38

本文主要是介绍Pytorch 0.4.0迁移指南(与之前版本编程上的不同点),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

版权说明:本篇文章为本人原创内容,转载请注明出处,谢谢合作!

2018年4月25号,官方发布Pytorch0.4.0版本,此版本除了支持Windows外,与之前的Pytorch版本也有诸多不同,主要表现在编程方面。因此该指南主要用来介绍Pytorch0.4.0代码方面需要注意的地方:
####1. 弃用Variables并与Tensors合并
之前版本,最终的输入数据必须转化为Variable的形式,而在Pytorch0.4.0版中,torch.Tensor包括了torch.autograd.Variable,已经不需要转化为Variable的形式。
type()的功能也变了,它不会再返回数据的类型,需要用x.type()代替。

>>>x = torch.DoubleTensor([1, 1, 1])
>>>print(type(x))<class ‘torch.Tensor’>#不再返回数据类型
>>>print(x.type())<class ‘torch.DoubleTensor’>#能返回数据类型

####2. 支持零维Tensors

>>>torch.tensor(3.1416).size()
Torch.Size([])  #零维张量

####3. 弃用volatile
之前版本的volatitle=True 相当于requires_grad=False,一般用于测试的时候不需要进行梯度计算,这样做能减少内存使用。新版中使用torch.no_grad()代替。
####4.新增dtypes、devices和numpy风格的Tensor
如:device = torch.device(“cuda” if torch.cuda.is_available() else “cpu”),会依据你的计算机配置自动选择CPU还是GPU运算。
####用一个例子来对比Pytorch 0.4.0代码上需要注意的地方:
0.3.1(老版本):

model = CNN()if use_cuda:model = model.cuda()# 训练total_loss = 0for input, target in train_loader:input, target = Variable(input), Variable(target) #需转化为Variablehidden = Variable(torch.zeros(*h_shape))  # 定义是否使用GPUif use_cuda:input, target, hidden = input.cuda(), target.cuda(), hidden.cuda()...  # 获得loss的值total_loss += loss.data[0]# 测试for input, target in test_loader:input = Variable(input, volatile=True)if use_cuda:......

0.4.0(新版本):

  # 定义device,是否使用GPU,依据计算机配置自动会选择device = torch.device("cuda" if torch.cuda.is_available() else "cpu")#用.to(device)来决定模型使用GPU还是CPUmodel = CNN().to(device)# 训练total_loss = 0for input, target in train_loader:#不需要转化为Variable,直接用Tensors作为输入,用.to(device)来决定使用GPU还是CPUinput, target = input.to(device), target.to(device)hidden = input.new_zeros(*h_shape)  ...  # 获得loss值,也与老版本不同total_loss += loss.item()          # 测试with torch.no_grad():      # 测试时不会进行梯度计算,节约内存for input, target in test_loader:...

这篇关于Pytorch 0.4.0迁移指南(与之前版本编程上的不同点)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/725118

相关文章

零基础STM32单片机编程入门(一)初识STM32单片机

文章目录 一.概要二.单片机型号命名规则三.STM32F103系统架构四.STM32F103C8T6单片机启动流程五.STM32F103C8T6单片机主要外设资源六.编程过程中芯片数据手册的作用1.单片机外设资源情况2.STM32单片机内部框图3.STM32单片机管脚图4.STM32单片机每个管脚可配功能5.单片机功耗数据6.FALSH编程时间,擦写次数7.I/O高低电平电压表格8.外设接口

ONLYOFFICE 8.1 版本桌面编辑器测评

在现代办公环境中,办公软件的重要性不言而喻。从文档处理到电子表格分析,再到演示文稿制作,强大且高效的办公软件工具能够极大提升工作效率。ONLYOFFICE 作为一个功能全面且开源的办公软件套件,一直以来都受到广大用户的关注与喜爱。而其最新发布的 ONLYOFFICE 8.1 版本桌面编辑器,更是带来了诸多改进和新特性。本文将详细评测 ONLYOFFICE 8.1 版本桌面编辑器,探讨其在功能、用户

17.用300行代码手写初体验Spring V1.0版本

1.1.课程目标 1、了解看源码最有效的方式,先猜测后验证,不要一开始就去调试代码。 2、浓缩就是精华,用 300行最简洁的代码 提炼Spring的基本设计思想。 3、掌握Spring框架的基本脉络。 1.2.内容定位 1、 具有1年以上的SpringMVC使用经验。 2、 希望深入了解Spring源码的人群,对 Spring有一个整体的宏观感受。 3、 全程手写实现SpringM

16.Spring前世今生与Spring编程思想

1.1.课程目标 1、通过对本章内容的学习,可以掌握Spring的基本架构及各子模块之间的依赖关系。 2、 了解Spring的发展历史,启发思维。 3、 对 Spring形成一个整体的认识,为之后的深入学习做铺垫。 4、 通过对本章内容的学习,可以了解Spring版本升级的规律,从而应用到自己的系统升级版本命名。 5、Spring编程思想总结。 1.2.内容定位 Spring使用经验

Visual Studio中,MSBUild版本问题

假如项目规定了MSBUild版本,那么在安装完Visual Studio后,假如带的MSBUild版本与项目要求的版本不符合要求,那么可以把需要的MSBUild添加到系统中,然后即可使用。步骤如下:            假如项目需要使用V12的MSBUild,而安装的Visual Studio带的MSBUild版本为V14。 ①到MSDN下载V12 MSBUild包,把V12包解压到目录(

基于CTPN(tensorflow)+CRNN(pytorch)+CTC的不定长文本检测和识别

转发来源:https://swift.ctolib.com/ooooverflow-chinese-ocr.html chinese-ocr 基于CTPN(tensorflow)+CRNN(pytorch)+CTC的不定长文本检测和识别 环境部署 sh setup.sh 使用环境: python 3.6 + tensorflow 1.10 +pytorch 0.4.1 注:CPU环境

打造坚固的SSH防护网:端口敲门入门指南

欢迎来到我的博客,代码的世界里,每一行都是一个故事 🎏:你只管努力,剩下的交给时间 🏠 :小破站 打造坚固的SSH防护网:端口敲门入门指南 前言什么是端口敲门端口敲门的优点1. 增强安全性2. 动态防火墙规则3. 隐匿服务4. 改善日志管理5. 灵活性和兼容性6. 低资源消耗7. 防御暴力破解和扫描8. 便于合法用户访问9. 适用于不同类型的服务 端口敲

Pycharm配置conda环境(解决新版本无法识别可执行文件问题)

引言: 很多小伙伴在下载最新版本的pycharm或者更新到最新版本后为项目配置conda环境的时候,发现文件夹目录中无法显示可执行文件(一般为python.exe),以下就是本人遇到该问题后试验和解决该问题的一些方法和思路。 一般遇到该问题的人群有两种,一种是刚入门对pycharm进行conda环境配置的小白(例如我),不熟悉相关环境配置的操作和过程,还有一种是入坑pycharm有段时间的老手

PyTorch模型_trace实战:深入理解与应用

pytorch使用trace模型 1、使用trace生成torchscript模型2、使用trace的模型预测 1、使用trace生成torchscript模型 def save_trace(model, input, save_path):traced_script_model = torch.jit.trace(model, input)<