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基础教程之python消息摘要算法使用示例
Feb 10 Python
简单介绍使用Python解析并修改XML文档的方法
Oct 15 Python
Python中set与frozenset方法和区别详解
May 23 Python
Python之re操作方法(详解)
Jun 14 Python
python绘制铅球的运行轨迹代码分享
Nov 14 Python
python类的方法属性与方法属性的动态绑定代码详解
Dec 27 Python
Python中的元组介绍
Jan 28 Python
python-tornado的接口用swagger进行包装的实例
Aug 29 Python
Python xlrd excel文件操作代码实例
Mar 10 Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
May 19 Python
一文搞懂如何实现Go 超时控制
Mar 30 Python
Python if else条件语句形式详解
Mar 24 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
PHP中的str_repeat函数在JavaScript中的实现
2013/09/16 PHP
详解提高使用Java反射的效率方法
2019/04/29 PHP
HR vs CL BO3 第一场 2.13
2021/03/10 DOTA
jquery复选框CHECKBOX全选、反选
2008/08/30 Javascript
基于jQuery的左右滚动实现代码
2010/12/03 Javascript
jquery里的each使用方法详解
2010/12/22 Javascript
JQquery的一些使用心得分享
2012/08/01 Javascript
jQuery实现选项卡切换效果简单演示
2015/12/09 Javascript
JavaScript下的时间格式处理函数Date.prototype.format
2016/01/27 Javascript
javaScript数组迭代方法详解
2016/04/14 Javascript
JavaScript判断是否是微信浏览器
2016/06/13 Javascript
Javascript typeof与instanceof的区别
2016/10/18 Javascript
Vue.js实战之组件的进阶
2017/04/04 Javascript
vue.js过滤器+ajax实现事件监听及后台php数据交互实例
2018/05/22 Javascript
JavaScript 处理树数据结构的方法示例
2019/06/16 Javascript
使用express来代理服务的方法
2019/06/21 Javascript
js设置鼠标悬停改变背景色实现详解
2019/06/26 Javascript
浅谈vuex的基本用法和mapaction传值问题
2019/11/08 Javascript
JavaScript实现弹出窗口效果
2020/12/09 Javascript
手动实现vue2.0的双向数据绑定原理详解
2021/02/06 Vue.js
Linux下使用python自动修改本机网关代码分享
2015/05/21 Python
python 实现对文件夹内的文件排序编号
2018/04/12 Python
numpy中以文本的方式存储以及读取数据方法
2018/06/04 Python
解决python中import文件夹下面py文件报错问题
2020/06/01 Python
纯CSS3制作漂亮带动画效果的主机价格表
2015/04/25 HTML / CSS
移动端解决悬浮层(悬浮header、footer)会遮挡住内容的3种方法
2015/03/27 HTML / CSS
应届生煤化工求职信
2013/10/21 职场文书
小学英语教学反思
2014/01/30 职场文书
2014年妇幼保健工作总结
2014/12/08 职场文书
预备党员考察表党小组意见
2015/06/01 职场文书
公司回复函格式
2015/07/14 职场文书
中学生国庆节演讲稿2015
2015/07/30 职场文书
学校2016年圣诞节活动总结
2016/03/31 职场文书
汽车销售合同文本
2019/08/08 职场文书
自定义函数实现单词排序并运用于PostgreSQL(实现代码)
2021/04/22 PostgreSQL
MYSQL中文乱码问题的解决方案
2022/06/14 MySQL