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获取目录下所有文件的方法
Jun 01 Python
Python中遇到的小问题及解决方法汇总
Jan 11 Python
Python实现图片转字符画的示例代码
Aug 21 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
Nov 30 Python
Python最小二乘法矩阵
Jan 02 Python
Django密码存储策略分析
Jan 09 Python
Python中用pyinstaller打包时的图标问题及解决方法
Feb 17 Python
用Python在Excel里画出蒙娜丽莎的方法示例
Apr 28 Python
python如何建立全零数组
Jul 19 Python
Windows 平台做 Python 开发的最佳组合(推荐)
Jul 27 Python
python与js主要区别点总结
Sep 13 Python
深入浅析pycharm中 Make available to all projects的含义
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
有关JSON以及JSON在PHP中的应用
2010/04/09 PHP
php学习之运算符相关概念
2011/06/09 PHP
php采集中国代理服务器网的方法
2015/06/16 PHP
Yii框架常见缓存应用实例小结
2019/09/09 PHP
laravel5.5添加echarts实现画图功能的方法
2019/10/09 PHP
jquery实现图片等比例缩放以及max-width在ie中不兼容解决
2013/03/21 Javascript
node.js中的http.response.addTrailers方法使用说明
2014/12/14 Javascript
JQuery右键菜单插件ContextMenu使用指南
2014/12/19 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
2015/12/04 Javascript
浅谈javascript的call()、apply()、bind()的用法
2016/02/21 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
2016/05/09 Javascript
JS及JQuery对Html内容编码,Html转义
2017/02/17 Javascript
史上最全JavaScript常用的简写技巧(推荐)
2017/08/17 Javascript
解决vue动态为数据添加新属性遇到的问题
2018/09/18 Javascript
Postman如何实现参数化执行及断言处理
2020/07/28 Javascript
解决vue路由name同名,路由重复的问题
2020/08/05 Javascript
JS实现购物车基本功能
2020/11/08 Javascript
解决vue初始化项目一直停在downloading template的问题
2020/11/09 Javascript
python清除字符串里非字母字符的方法
2015/07/02 Python
Python网站验证码识别
2016/01/25 Python
Django使用unittest模块进行单元测试过程解析
2019/08/02 Python
python基于gevent实现并发下载器代码实例
2019/11/01 Python
使用tqdm显示Python代码执行进度功能
2019/12/08 Python
美国精品地毯网站:Boutique Rugs
2020/03/04 全球购物
Otiumberg官网:英国半精致珠宝品牌
2021/01/16 全球购物
.NET现在共支持多少种语言
2014/02/26 面试题
幼儿园中秋节活动方案
2014/02/06 职场文书
求职自荐信怎么写
2014/03/06 职场文书
竞选团支书演讲稿
2014/04/28 职场文书
2014年政协委员工作总结
2014/12/01 职场文书
教师岗位职责
2015/02/03 职场文书
统计员岗位职责
2015/02/11 职场文书
综合素质评价思想道德自我评价
2015/03/09 职场文书
2015年税务稽查工作总结
2015/05/26 职场文书
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python
使用CSS实现小三角边框原理解析
2021/11/07 HTML / CSS