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 匹配任意字符(包括换行符)的正则表达式写法
Oct 29 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
Oct 21 Python
解决pyinstaller打包exe文件出现命令窗口一闪而过的问题
Oct 31 Python
python绘制漏斗图步骤详解
Mar 04 Python
Python opencv实现人眼/人脸识别以及实时打码处理
Apr 29 Python
Django框架使用mysql视图操作示例
May 15 Python
对python 中class与变量的使用方法详解
Jun 26 Python
python获取全国城市pm2.5、臭氧等空气质量过程解析
Oct 12 Python
tensorflow求导和梯度计算实例
Jan 23 Python
opencv之颜色过滤只留下图片中的红色区域操作
Jun 05 Python
Python用来做Web开发的优势有哪些
Aug 05 Python
Python OpenCV中的numpy与图像类型转换操作
Dec 11 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
玩转图像函数库―常见图形操作
2006/09/03 PHP
改进的IP计数器
2006/10/09 PHP
PHP中使用file_get_contents post数据代码例子
2015/02/13 PHP
如何使用Gitblog和Markdown建自己的博客
2015/07/31 PHP
让你的PHP7更快之Hugepage用法分析
2016/05/31 PHP
利用php操作memcache缓存的基础方法示例
2017/08/02 PHP
laravel 关联关系遍历数组的例子
2019/10/10 PHP
js 单引号 传递方法
2009/06/22 Javascript
原生Js实现简易烟花爆炸效果的方法
2015/03/20 Javascript
js实现仿Windows风格选项卡和按钮效果实例
2015/05/13 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
2015/08/07 Javascript
简要了解jQuery移动web开发的响应式布局设计
2015/12/04 Javascript
javascript 广告移动特效的实现代码
2016/06/25 Javascript
微信小程序 配置文件详细介绍
2016/12/14 Javascript
原生js实现下拉选项卡
2019/11/27 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
微信小程序实现打卡签到页面
2020/09/21 Javascript
python爬取网易云音乐评论
2018/11/16 Python
python实现的MySQL增删改查操作实例小结
2018/12/19 Python
Python selenium根据class定位页面元素的方法
2019/02/26 Python
详解Django+uwsgi+Nginx上线最佳实战
2019/03/14 Python
Python学习笔记之Break和Continue用法分析
2019/08/14 Python
python对文件的操作方法汇总
2020/02/28 Python
python中re模块知识点总结
2021/01/17 Python
Html5 webview元素定位工具的实现
2020/08/07 HTML / CSS
Nicole Miller官方网站:纽约女装品牌
2019/09/14 全球购物
编程实现当输入某产品代码则打印出该产品记录的功能
2014/05/03 面试题
失业者真诚求职信范文
2013/12/25 职场文书
银行行长竞聘演讲稿
2014/04/23 职场文书
护士感人事迹
2014/05/01 职场文书
一体化教学实施方案
2014/05/10 职场文书
科长竞争上岗演讲稿
2014/05/12 职场文书
销售提升方案
2014/06/07 职场文书
回复函格式及范文
2015/07/14 职场文书
科级干部培训心得体会
2016/01/06 职场文书
Vue Element plus使用方法梳理
2022/12/24 Vue.js