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调用cmd命令行制作刷博器
Jan 13 Python
详解Django中的权限和组以及消息
Jul 23 Python
浅谈插入排序算法在Python程序中的实现及简单改进
May 04 Python
Python中operator模块的操作符使用示例总结
Jun 28 Python
Python 对象中的数据类型
May 13 Python
微信跳一跳小游戏python脚本
Jan 05 Python
Python爬虫之网页图片抓取的方法
Jul 16 Python
python 分离文件名和路径以及分离文件名和后缀的方法
Oct 21 Python
linux中如何使用python3获取ip地址
Jul 15 Python
在python里创建一个任务(Task)实例
Apr 25 Python
基于keras中的回调函数用法说明
Jun 17 Python
python判断是空的实例分享
Jul 06 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
php实现文件预览功能
2017/05/23 PHP
PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】
2019/02/25 PHP
风吟的小型JavaScirpt库 (FY.JS).
2010/03/09 Javascript
js子页面获取父页面数据示例
2014/05/15 Javascript
基于JavaScript实现熔岩灯效果导航菜单
2017/01/04 Javascript
vue-router单页面路由
2017/06/17 Javascript
Angular4学习笔记之实现绑定和分包
2017/08/01 Javascript
jQuery使用动画队列自定义动画操作示例
2018/06/16 jQuery
JS中通过url动态获取图片大小的方法小结(两种方法)
2018/10/31 Javascript
微信小程序移动拖拽视图-movable-view实例详解
2019/08/17 Javascript
浅谈TypeScript的类型保护机制
2020/02/23 Javascript
JavaScript鼠标悬停事件用法解析
2020/05/15 Javascript
JavaScript的垃圾回收机制与内存管理
2020/08/06 Javascript
让python同时兼容python2和python3的8个技巧分享
2014/07/11 Python
Django学习笔记之Class-Based-View
2017/02/15 Python
Python中Threading用法详解
2017/12/27 Python
python破解zip加密文件的方法
2018/05/31 Python
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
2018/12/05 Python
python自动结束mysql慢查询会话的实例代码
2019/10/27 Python
python求numpy中array按列非零元素的平均值案例
2020/06/08 Python
详解selenium + chromedriver 被反爬的解决方法
2020/10/28 Python
AmazeUI 评论列表的实现示例
2020/08/13 HTML / CSS
墨尔本复古时尚品牌:Dangerfield
2018/12/12 全球购物
奥地利婴儿用品和玩具购物网站:baby-markt.at
2020/01/26 全球购物
ASICS印度官方网站:日本专业运动品牌
2020/06/20 全球购物
师范生教师实习自我鉴定
2013/09/27 职场文书
初入社会应届生求职信
2013/11/18 职场文书
超市采购员岗位职责
2014/02/01 职场文书
个人授权委托书样本
2014/09/13 职场文书
毕业生实习期转正自我鉴定
2014/09/26 职场文书
英文感谢信格式
2015/01/21 职场文书
大班下学期个人总结
2015/02/13 职场文书
《我和小伙伴》教学反思
2016/02/20 职场文书
阿里云Nginx配置https实现域名访问项目(图文教程)
2021/03/31 Servers
Anaconda安装pytorch和paddle的方法步骤
2022/04/03 Python
Java由浅入深通关抽象类与接口(下篇)
2022/04/26 Java/Android