Pytorch to(device)用法


Posted in Python onJanuary 08, 2020

如下所示:

device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
model.to(device)

这两行代码放在读取数据之前。

mytensor = my_tensor.to(device)

这行代码的意思是将所有最开始读取数据时的tensor变量copy一份到device所指定的GPU上去,之后的运算都在GPU上进行。

这句话需要写的次数等于需要保存GPU上的tensor变量的个数;一般情况下这些tensor变量都是最开始读数据时的tensor变量,后面衍生的变量自然也都在GPU上

如果是多个GPU

在代码中的使用方法为:

device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")

model = Model()

if torch.cuda.device_count() > 1:

 model = nn.DataParallel(model,device_ids=[0,1,2])

 

model.to(device)

Tensor总结

(1)Tensor 和 Numpy都是矩阵,区别是前者可以在GPU上运行,后者只能在CPU上;

(2)Tensor和Numpy互相转化很方便,类型也比较兼容

(3)Tensor可以直接通过print显示数据类型,而Numpy不可以

把Tensor放到GPU上运行

if torch.cuda.is_available():
 h = g.cuda()
 print(h)
torch.nn.functional
Convolution函数
torch.nn.functional.vonv1d(input,weight,bias=None,stride=1,padding=0,dilation=1,groups=1)
 
 
 
torch.nn.functional.conv2d(input,weight,bias=None,stride=1,padding=0,dilation=1,group=1)
 
parameter:
 input --输入张量(minibatch * in_channels * iH * iW)-weights-? 过滤器张量 (out_channels, in_channels/groups, kH, kW) - bias ? 可选偏置张量 (out_channels) - stride ? 卷积核的步长,可以是单个数字或一个元组 (sh x sw)。默认为1 - padding ? 输入上隐含零填充。可以是单个数字或元组。 默认值:0 - groups ? 将输入分成组,in_channels应该被组数除尽
 
 
>>> # With square kernels and equal stride
>>> filters = autograd.Variable(torch.randn(8,4,3,3))
>>> inputs = autograd.Variable(torch.randn(1,4,5,5))
>>> F.conv2d(inputs, filters, padding=1)

Pytorch中使用指定的GPU

(1)直接终端中设定

CUDA_VISIBLE_DEVICES=1

(2)python代码中设定:

import os

os.environ['CUDA_VISIBLE_DEVICE']='1'

(3)使用函数set_device

import torch

torch.cuda.set_device(id)

Pytoch中的in-place

in-place operation 在 pytorch中是指改变一个tensor的值的时候,不经过复制操作,而是在运来的内存上改变它的值。可以把它称为原地操作符。

在pytorch中经常加后缀 “_” 来代表原地in-place operation, 比如 .add_() 或者.scatter()

python 中里面的 += *= 也是in-place operation。

下面是正常的加操作,执行结束加操作之后x的值没有发生变化:

import torch
x=torch.rand(2) #tensor([0.8284, 0.5539])
print(x)
y=torch.rand(2)
print(x+y)  #tensor([1.0250, 0.7891])
print(x)  #tensor([0.8284, 0.5539])

下面是原地操作,执行之后改变了原来变量的值:

import torch
x=torch.rand(2) #tensor([0.8284, 0.5539])
print(x)
y=torch.rand(2)
x.add_(y)
print(x)  #tensor([1.1610, 1.3789])

以上这篇Pytorch to(device)用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python求解最大公约数的实现方法
Aug 20 Python
python实现识别手写数字 python图像识别算法
Mar 23 Python
Python测试人员需要掌握的知识
Feb 08 Python
用tensorflow搭建CNN的方法
Mar 05 Python
Python键盘输入转换为列表的实例
Jun 23 Python
在python带权重的列表中随机取值的方法
Jan 23 Python
python 读写excel文件操作示例【附源码下载】
Jun 19 Python
对Python中class和instance以及self的用法详解
Jun 26 Python
python交互模式下输入换行/输入多行命令的方法
Jul 02 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
Nov 15 Python
PyTorch实现更新部分网络,其他不更新
Dec 31 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
Apr 21 Python
pycharm 2019 最新激活方式(pycharm破解、激活)
Sep 22 #Python
Python语言异常处理测试过程解析
Jan 08 #Python
Pytorch在NLP中的简单应用详解
Jan 08 #Python
解析PyCharm Python运行权限问题
Jan 08 #Python
python读取ini配置的类封装代码实例
Jan 08 #Python
Python Des加密解密如何实现软件注册码机器码
Jan 08 #Python
Pytorch技巧:DataLoader的collate_fn参数使用详解
Jan 08 #Python
You might like
人工智能开始玩《星际争霸2》 你的操作跟得上吗?
2017/08/11 星际争霸
PHP中常用的输出函数总结
2014/09/22 PHP
php简单统计中文个数的方法
2016/09/30 PHP
jQuery maxlength文本字数限制插件
2010/04/16 Javascript
JavaScript 以对象为索引的关联数组
2010/05/19 Javascript
artDialog双击会关闭对话框的修改过程分享
2013/08/05 Javascript
js日期对象兼容性的处理方法
2014/01/28 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
2015/09/17 Javascript
基于javascript实现图片切换效果
2016/04/17 Javascript
利用fecha进行JS日期处理
2016/11/21 Javascript
jQuery实现表格元素动态创建功能
2017/01/09 Javascript
JS中解决谷歌浏览器记住密码输入框颜色改变功能
2017/02/13 Javascript
bootstrap suggest搜索建议插件使用详解
2017/03/25 Javascript
vue.js给动态绑定的radio列表做批量编辑的方法
2018/02/28 Javascript
layUI实现列表查询功能
2019/07/27 Javascript
React实现阿里云OSS上传文件的示例
2020/08/10 Javascript
vue或react项目生产环境去掉console.log的操作
2020/09/02 Javascript
ant design 日期格式化的实现
2020/10/27 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
js 执行上下文和作用域的相关总结
2021/02/08 Javascript
[55:39]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第二场 1月19日
2021/03/11 DOTA
深入浅析Python中的yield关键字
2018/01/24 Python
Python实现随机生成手机号及正则验证手机号的方法
2018/04/25 Python
python pandas库中DataFrame对行和列的操作实例讲解
2018/06/09 Python
用Python做一个久坐提醒小助手的示例代码
2020/02/10 Python
给 TensorFlow 变量进行赋值的方式
2020/02/10 Python
Python之京东商品秒杀的实现示例
2021/01/06 Python
CSS去掉A标签(链接)虚线框的方法
2014/04/01 HTML / CSS
HTML5实现签到 功能
2018/10/09 HTML / CSS
西班牙创意礼品和小工具网上商店:Curiosite
2016/07/26 全球购物
年终考核实施方案
2014/05/26 职场文书
总经理检讨书
2014/09/15 职场文书
继承公证书格式
2015/01/26 职场文书
2015年人事专员工作总结
2015/04/29 职场文书
小学2016年“我们的节日·重阳节”活动总结
2016/04/01 职场文书
创业计划书之暑假培训班
2019/11/09 职场文书