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实现数通设备端口监控示例
Apr 02 Python
Python判断值是否在list或set中的性能对比分析
Apr 16 Python
Python实现在某个数组中查找一个值的算法示例
Jun 27 Python
python制作抖音代码舞
Apr 07 Python
python3 深浅copy对比详解
Aug 12 Python
关于Python核心框架tornado的异步协程的2种方法详解
Aug 28 Python
Python csv文件的读写操作实例详解
Nov 19 Python
python 使用shutil复制图片的例子
Dec 13 Python
Python包,__init__.py功能与用法分析
Jan 07 Python
基于python实现语音录入识别代码实例
Jan 17 Python
Python 数据的累加与统计的示例代码
Aug 03 Python
python实现ROA算子边缘检测算法
Apr 05 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
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
2015/02/12 PHP
PHP连接MySQL数据库并以json格式输出
2018/05/21 PHP
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
javascript 函数式编程
2007/08/16 Javascript
JavaScript 基础问答三
2008/12/03 Javascript
Prototype Template对象 学习
2009/07/19 Javascript
location对象的属性和方法应用(解析URL)
2013/04/12 Javascript
Jquery判断$("#id")获取的对象是否存在的方法
2013/09/25 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
2014/06/16 Javascript
JavaScript中连接操作Oracle数据库实例
2015/04/02 Javascript
javascript实现Email邮件显示与删除功能
2015/11/21 Javascript
js实现正则匹配中文标点符号的方法
2015/12/23 Javascript
JavaScript类的写法
2016/09/17 Javascript
js实现悬浮窗效果(支持拖动)
2017/03/09 Javascript
ionic选择多张图片上传的示例代码
2017/10/10 Javascript
JS二级菜单不同实现方法分析【4种方法】
2018/12/21 Javascript
仿ElementUI实现一个Form表单的实现代码
2019/04/23 Javascript
vue项目引入ts步骤(小结)
2019/10/31 Javascript
Vue中this.$nextTick的作用及用法
2020/02/04 Javascript
[41:52]2018DOTA2亚洲邀请赛3月29日 小组赛A组 TNC VS OpTic
2018/03/30 DOTA
简单的编程0基础下Python入门指引
2015/04/01 Python
python批量添加zabbix Screens的两个脚本分享
2017/01/16 Python
python交互式图形编程实例(一)
2017/11/17 Python
python  创建一个保留重复值的列表的补码
2018/10/15 Python
如何利用Pyecharts可视化微信好友
2019/07/04 Python
TensorFlow2.0:张量的合并与分割实例
2020/01/19 Python
Django分组聚合查询实例分享
2020/04/29 Python
Python 为什么推荐蛇形命名法原因浅析
2020/06/18 Python
python中字符串的编码与解码详析
2020/12/03 Python
我能否用void** 指针作为参数, 使函数按引用接受一般指针
2013/02/16 面试题
山海经纬软件测试笔试题和面试题
2013/04/02 面试题
争做文明公民倡议书
2014/08/29 职场文书
2015年护士节慰问信
2015/03/23 职场文书
催款函范文
2015/06/24 职场文书
2016幼儿园中班开学寄语
2015/12/03 职场文书
用Python进行栅格数据的分区统计和批量提取
2021/05/27 Python