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 相关文章推荐
用pywin32实现windows模拟鼠标及键盘动作
Apr 22 Python
Python字符串处理函数简明总结
Apr 13 Python
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
Mar 15 Python
python搭建服务器实现两个Android客户端间收发消息
Apr 12 Python
学习python分支结构
May 17 Python
使用Python函数进行模块化的实现
Nov 15 Python
python 实现多维数组转向量
Nov 30 Python
关于PySnooper 永远不要使用print进行调试的问题
Mar 04 Python
python实现简单的名片管理系统
Apr 26 Python
教你使用TensorFlow2识别验证码
Jun 11 Python
python的列表生成式,生成器和generator对象你了解吗
Mar 16 Python
Django中celery的使用项目实例
Jul 07 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
VML绘图板②脚本--VMLgraph.js、XMLtool.js
2006/10/09 PHP
php设计模式 Observer(观察者模式)
2011/06/26 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
php封装的pdo数据库操作工具类与用法示例
2019/05/08 PHP
js获取多个tagname的节点数组
2013/09/22 Javascript
JQUERY简单按钮轮换选中效果实现方法
2015/05/07 Javascript
javascript实现2016新年版日历
2016/01/25 Javascript
Javascript6中字符串的四个新用法分享
2016/09/11 Javascript
jQuery查找节点方法完整实例
2016/09/13 Javascript
jQuery插件easyUI实现通过JS显示Dialog的方法
2016/09/16 Javascript
关于Function中的bind()示例详解
2016/12/02 Javascript
js 函数式编程学习笔记
2017/03/25 Javascript
从零开始用electron手撸一个截屏工具的示例代码
2018/10/10 Javascript
使用electron实现百度网盘悬浮窗口功能的示例代码
2018/10/24 Javascript
Vue中的情侣属性$dispatch和$broadcast详解
2019/03/07 Javascript
[00:35]2016完美“圣”典风云人物:冷冷宣传片
2016/12/08 DOTA
Windows下Python2与Python3两个版本共存的方法详解
2017/02/12 Python
Python之Scrapy爬虫框架安装及简单使用详解
2017/12/22 Python
对python mayavi三维绘图的实现详解
2019/01/08 Python
python实现京东订单推送到测试环境,提供便利操作示例
2019/08/09 Python
Python图像处理库PIL中图像格式转换的实现
2020/02/26 Python
Python SQLAlchemy库的使用方法
2020/10/13 Python
CSS3 渐变(Gradients)之CSS3 径向渐变
2016/07/08 HTML / CSS
美国南加州的原创极限运动潮牌:Vans(范斯)
2016/08/05 全球购物
LivingSocial爱尔兰:爱尔兰本地优惠
2018/08/10 全球购物
绘画专业自荐信范文
2014/02/23 职场文书
创先争优一句话承诺
2014/05/29 职场文书
2014教师个人自我评价范文
2014/09/13 职场文书
租车协议书范本2014
2014/11/17 职场文书
行政主管岗位职责范本
2015/04/09 职场文书
2016十一国庆节慰问信
2015/12/01 职场文书
2020优秀员工演讲稿(三篇)
2019/10/17 职场文书
利用python实时刷新基金估值(摸鱼小工具)
2021/09/15 Python
Mybatis-Plus进阶分页与乐观锁插件及通用枚举和多数据源详解
2022/03/21 Java/Android
关于vue-router-link选择样式设置
2022/04/30 Vue.js