Pytorch中.new()的作用详解


Posted in Python onFebruary 18, 2020

一、作用

创建一个新的Tensor,该Tensor的typedevice都和原有Tensor一致,且无内容。

二、使用方法

如果随机定义一个大小的Tensor,则新的Tensor有两种创建方法,如下:

inputs = torch.randn(m, n)
 
new_inputs = inputs.new()
new_inputs = torch.Tensor.new(inputs)

三、具体代码

import torch
 
rectangle_height = 1
rectangle_width = 4
inputs = torch.randn(rectangle_height, rectangle_width)
for i in range(rectangle_height):
  for j in range(rectangle_width):
    inputs[i][j] = (i + 1) * (j + 1)
print("inputs:", inputs)
new_inputs = inputs.new()
print("new_inputs:", new_inputs)
# Constructs a new tensor of the same data type as self tensor.
print(new_inputs.type(), inputs.type())
print('')
 
inputs = inputs.squeeze(dim=0)
print("inputs:", inputs)
# new_inputs = inputs.new()
new_inputs = torch.Tensor.new(inputs)
print("new_inputs:", new_inputs)
# Constructs a new tensor of the same data type as self tensor.
print(new_inputs.type(), inputs.type())
if torch.cuda.is_available():
  device = torch.device("cuda")
  inputs, new_inputs = inputs.to(device), new_inputs.to(device)
  print(inputs.device, new_inputs.device)

结果如下:

可以看到不论inputs是多少维的,新建的new_inputstypedevice都与inputs保持一致

inputs: tensor([[1., 2., 3., 4.]])
new_inputs: tensor([])
torch.FloatTensor torch.FloatTensor
 
inputs: tensor([1., 2., 3., 4.])
new_inputs: tensor([])
torch.FloatTensor torch.FloatTensor
cuda:0 cuda:0

四、实际应用(添加噪声)

可以对Tensor添加噪声,添加如下代码即可实现:

noise = inputs.data.new(inputs.size()).normal_(0,0.01)
print(noise)

结果如下:

tensor([ 0.0062, 0.0137, -0.0209, 0.0072], device='cuda:0')

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

Python 相关文章推荐
Python 判断 有向图 是否有环的实例讲解
Feb 01 Python
python实现聊天小程序
Mar 13 Python
详解python多线程、锁、event事件机制的简单使用
Apr 27 Python
Python图像处理之直线和曲线的拟合与绘制【curve_fit()应用】
Dec 26 Python
详解Python爬取并下载《电影天堂》3千多部电影
Apr 26 Python
Python常用模块之requests模块用法分析
May 15 Python
计算机二级python学习教程(3) python语言基本数据类型
May 16 Python
基于Python实现船舶的MMSI的获取(推荐)
Oct 21 Python
python 实现有道翻译功能
Feb 26 Python
pytorch 把图片数据转化成tensor的操作
Mar 04 Python
自己搭建resnet18网络并加载torchvision自带权重的操作
May 13 Python
Python办公自动化PPT批量转换操作
Sep 15 Python
Pytorch maxpool的ceil_mode用法
Feb 18 #Python
浅谈pytorch池化maxpool2D注意事项
Feb 18 #Python
Python3的socket使用方法详解
Feb 18 #Python
Python批量启动多线程代码实例
Feb 18 #Python
基于pytorch padding=SAME的解决方式
Feb 18 #Python
Python中pyecharts安装及安装失败的解决方法
Feb 18 #Python
Python chardet库识别编码原理解析
Feb 18 #Python
You might like
fleaphp crud操作之find函数的使用方法
2011/04/23 PHP
解析PHP中的内存管理,PHP动态分配和释放内存
2013/06/28 PHP
smarty模板引擎中变量及变量修饰器用法实例
2015/01/22 PHP
PHP基于文件存储实现缓存的方法
2015/07/20 PHP
php使用GD2绘制几何图形示例
2017/02/15 PHP
几行代码轻松实现PHP文件打包下载zip
2017/03/01 PHP
Laravel学习教程之路由模块
2017/08/18 PHP
laravel ORM 只开启created_at的几种方法总结
2018/01/29 PHP
extjs关于treePanel+chekBox全部选中以及清空选中问题探讨
2013/04/02 Javascript
js动态添加事件并可传参数示例代码
2013/10/21 Javascript
jquery实现在光标位置插入内容的方法
2015/02/05 Javascript
JavaScript判断是否为数字的4种方法及效率比较
2015/04/01 Javascript
JS实现带有3D立体感的银灰色竖排折叠菜单代码
2015/10/20 Javascript
全面解析Javascript无限添加QQ好友原理
2016/06/15 Javascript
在网页中插入百度地图的步骤详解
2016/12/02 Javascript
详解浏览器渲染页面过程
2017/02/09 Javascript
移动端网页开发调试神器Eruda的介绍与使用技巧
2017/10/30 Javascript
使用Vue自定义数字键盘组件(体验度极好)
2017/12/19 Javascript
vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)
2019/10/15 Javascript
[51:00]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
Mac 上切换Python多版本
2017/06/17 Python
利用python提取wav文件的mfcc方法
2019/01/09 Python
Python调用Windows API函数编写录音机和音乐播放器功能
2020/01/05 Python
python画环形图的方法
2020/03/25 Python
开业庆典策划方案
2014/02/18 职场文书
请假条范文大全
2014/04/10 职场文书
工地例会施工汇报材料
2014/08/22 职场文书
纪律教育学习心得体会
2014/09/02 职场文书
就业协议书范本
2014/10/08 职场文书
思想纪律作风整顿剖析材料
2014/10/11 职场文书
2014年精神文明工作总结
2014/12/23 职场文书
法学专业求职信范文
2015/03/19 职场文书
企业财务管理制度范本
2015/08/04 职场文书
市直属机关2016年主题党日活动总结
2016/04/05 职场文书
python 实现两个变量值进行交换的n种操作
2021/06/02 Python
为Centos安装指定版本的Docker
2022/04/01 Servers