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 08 Python
Python聚类算法之凝聚层次聚类实例分析
Nov 20 Python
Windows中安装使用Virtualenv来创建独立Python环境
May 31 Python
Python 多线程实例详解
Mar 25 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
Dec 19 Python
Python中那些 Pythonic的写法详解
Jul 02 Python
基于Python安装pyecharts所遇的问题及解决方法
Aug 12 Python
使用python3 实现插入数据到mysql
Mar 02 Python
python爬虫开发之selenium模块详细使用方法与实例全解
Mar 09 Python
Python生成器常见问题及解决方案
Mar 21 Python
Python TestSuite生成测试报告过程解析
Jul 23 Python
Python基础之元类详解
Apr 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+DBM的同学录程序(4)
2006/10/09 PHP
创建配置文件 用PHP写出自己的BLOG系统 2
2010/04/12 PHP
分享一段php获取linux服务器状态的代码
2014/05/27 PHP
ThinkPHP中的系统常量和预定义常量集合
2014/07/01 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
php字符串函数 str类常见用法示例
2020/05/15 PHP
jQuery EasyUI API 中文文档 - NumberBox数字框
2011/10/13 Javascript
js模仿windows桌面图标排列算法具体实现(附图)
2013/06/16 Javascript
JavaScript获取页面上被选中文字的方法技巧
2015/03/13 Javascript
全面解析Bootstrap手风琴效果
2020/04/17 Javascript
jquery日历插件datepicker用法分析
2016/01/22 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
vue-loader教程介绍
2017/06/14 Javascript
微信小程序实现红包雨功能
2018/07/11 Javascript
Vue封装的组件全局注册并引用
2019/07/24 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
[01:05:36]VP vs TNC Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
[01:01:42]Secret vs Optic Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
python使用multiprocessing模块实现带回调函数的异步调用方法
2015/04/18 Python
图文讲解选择排序算法的原理及在Python中的实现
2016/05/04 Python
Python生成随机密码的方法
2017/06/16 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
2018/01/26 Python
全面了解django的缓存机制及使用方法
2019/07/22 Python
Django实现web端tailf日志文件功能及实例详解
2019/07/28 Python
ansible动态Inventory主机清单配置遇到的坑
2020/01/19 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
2020/02/25 Python
python实现FTP循环上传文件
2020/03/20 Python
HTML5实现移动端复制功能
2018/04/19 HTML / CSS
Feelunique中文官网:欧洲最大化妆品零售电商
2020/07/10 全球购物
世界上最大的皮肤科医生拥有和经营的美容网站:LovelySkin
2021/01/03 全球购物
六查六看剖析材料
2014/02/15 职场文书
仓库管理员岗位职责
2014/03/19 职场文书
学校评语大全
2014/05/06 职场文书
总经理助理岗位职责范本
2014/07/20 职场文书
2016学习雷锋精神活动倡议书
2015/04/27 职场文书
OpenCV-Python实现轮廓的特征值
2021/06/09 Python