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 相关文章推荐
MySQL最常见的操作语句小结
May 07 Python
Python的Tornado框架实现图片上传及图片大小修改功能
Jun 30 Python
利用Python操作消息队列RabbitMQ的方法教程
Jul 19 Python
Python聊天室程序(基础版)
Apr 01 Python
pandas.DataFrame.to_json按行转json的方法
Jun 05 Python
django2用iframe标签完成网页内嵌播放b站视频功能
Jun 20 Python
对python读取CT医学图像的实例详解
Jan 24 Python
使用Python快速制作可视化报表的方法
Feb 03 Python
pyqt5 实现工具栏文字图片同时显示
Jun 13 Python
Django bulk_create()、update()与数据库事务的效率对比分析
May 15 Python
Python Pandas pandas.read_sql函数实例用法
Jun 21 Python
Python爬虫 简单介绍一下Xpath及使用
Apr 26 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
西德产收音机
2021/03/01 无线电
如何使用动态共享对象的模式来安装PHP
2006/10/09 PHP
PHP制作图型计数器的例子
2006/10/09 PHP
PHP实现获取域名的方法小结
2014/11/05 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
2019/10/08 PHP
Javascript 面向对象编程(coolshell)
2012/03/18 Javascript
JavaScript 创建运动框架的实现代码
2013/05/08 Javascript
jQuery实现的输入框选择时间插件用法实例
2015/02/28 Javascript
浅谈Javascript的静态属性和原型属性
2015/05/07 Javascript
AngularJS实现标签页的两种方式
2016/09/05 Javascript
js 打开新页面在屏幕中间的实现方法
2016/11/02 Javascript
jQuery 插件封装的方法
2016/11/16 Javascript
ES6新特性二:Iterator(遍历器)和for-of循环详解
2017/04/20 Javascript
Webpack中css-loader和less-loader的使用教程
2017/04/27 Javascript
javascript实现二叉树遍历的代码
2017/06/08 Javascript
探讨Vue.js的组件和模板
2017/10/27 Javascript
vue自定义filters过滤器
2018/04/26 Javascript
解决vue select当前value没有更新到vue对象属性的问题
2018/08/30 Javascript
Servlet返回的数据js解析2种方法
2019/12/12 Javascript
从源码角度来回答keep-alive组件的缓存原理
2021/01/18 Javascript
python实现telnet客户端的方法
2015/04/15 Python
深入理解NumPy简明教程---数组2
2016/12/17 Python
快速排序的四种python实现(推荐)
2019/04/03 Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
2020/01/15 Python
Android Q之气泡弹窗的实现示例
2020/06/23 Python
使用 HTML5 Canvas 制作水波纹效果点击图片就会触发
2014/09/15 HTML / CSS
英国天然有机美容护肤品:Neal’s Yard Remedies
2018/05/05 全球购物
劳力士官方珠宝商:J.R. Dunn Jewelers
2018/09/29 全球购物
中专毕业生自荐信
2013/11/16 职场文书
一年级学生期末评语
2014/04/21 职场文书
大学生团日活动总结
2015/05/06 职场文书
公路施工安全责任书
2015/05/08 职场文书
2016秋季幼儿园开学寄语
2015/12/03 职场文书
《全神贯注》教学反思
2016/02/22 职场文书
php双向队列实例讲解
2021/11/17 PHP
详解nginx location指令
2022/01/18 Servers