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之模块的加载
Oct 24 Python
Python中定时任务框架APScheduler的快速入门指南
Jul 06 Python
python3.6+django2.0开发一套学员管理系统
Mar 03 Python
Python实现合并同一个文件夹下所有PDF文件的方法示例
Apr 28 Python
python Pandas 读取txt表格的实例
Apr 29 Python
python 函数内部修改外部变量的方法
Dec 18 Python
python 多线程串行和并行的实例
Feb 22 Python
解决python xx.py文件点击完之后一闪而过的问题
Jun 24 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
Jun 26 Python
Python通过2种方法输出带颜色字体
Mar 02 Python
Python编写可视化界面的全过程(Python+PyCharm+PyQt)
May 17 Python
python 爬取华为应用市场评论
May 29 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目录操作实例代码
2014/02/21 PHP
ThinkPHP CURD方法之order方法详解
2014/06/18 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
HR vs CL BO3 第一场 2.13
2021/03/10 DOTA
Javascript 遍历对象中的子对象
2009/07/03 Javascript
JavaScript 一行代码,轻松搞定浮动快捷留言-V2升级版
2010/04/02 Javascript
Javascript级联下拉菜单以及AJAX数据验证核心代码
2013/05/10 Javascript
HTML Color Picker(js拾色器效果)
2013/08/27 Javascript
JS.elementGetStyle(element, style)应用示例
2013/09/24 Javascript
Javascript实现的简单右键菜单类
2015/09/23 Javascript
第一次接触神奇的Bootstrap
2016/10/14 Javascript
JS实现搜索框文字可删除功能
2016/12/28 Javascript
js实现网页定位导航功能
2017/03/07 Javascript
微信小程序多张图片上传功能
2017/06/07 Javascript
详解vue-cli快速构建vue应用并实现webpack打包
2017/12/13 Javascript
vue+vant实现商品列表批量倒计时功能
2020/01/13 Javascript
如何阻止移动端浏览器点击图片浏览
2020/08/29 Javascript
[43:36]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python 字符串中的字符倒转
2008/09/06 Python
解决谷歌搜索技术文章时打不开网页问题的python脚本
2013/02/10 Python
简单学习Python time模块
2016/04/29 Python
使用Kivy将python程序打包为apk文件
2017/07/29 Python
利用Tkinter和matplotlib两种方式画饼状图的实例
2017/11/06 Python
Python实现初始化不同的变量类型为空值
2020/06/02 Python
Python变量及数据类型用法原理汇总
2020/08/06 Python
linux面试题参考答案(7)
2012/10/29 面试题
留学生如何写好自荐信
2013/12/27 职场文书
档案接收函范文
2014/01/10 职场文书
给孩子的新年寄语
2014/04/08 职场文书
公路局群众路线教育实践活动第一阶段工作汇报
2014/10/25 职场文书
工程部经理岗位职责
2015/02/02 职场文书
图文详解matlab原始处理图像几何变换
2021/07/09 Python
Python中的pprint模块
2021/11/27 Python
Mysql中mvcc各场景理解应用
2022/08/05 MySQL
PostgreSQL之连接失败的问题及解决
2023/05/08 PostgreSQL