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中的分片与截断序列
Aug 09 Python
使用Kivy将python程序打包为apk文件
Jul 29 Python
Python 由字符串函数名得到对应的函数(实例讲解)
Aug 10 Python
Python实现扣除个人税后的工资计算器示例
Mar 26 Python
详解Django 中是否使用时区的区别
Jun 14 Python
python3.X 抓取火车票信息【修正版】
Jun 19 Python
django配置连接数据库及原生sql语句的使用方法
Mar 03 Python
Python中一般处理中文的几种方法
Mar 06 Python
关于pymysql模块的使用以及代码详解
Sep 01 Python
Numpy将二维数组添加到空数组的实现
Dec 05 Python
4行Python代码生成图像验证码(2种)
Apr 07 Python
Python使用Web框架Flask开发项目
Jun 01 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
使用 eAccelerator加速PHP代码的方法
2007/09/30 PHP
php 注释规范
2012/03/29 PHP
php socket客户端及服务器端应用实例
2014/07/04 PHP
五款PHP代码重构工具推荐
2014/10/14 PHP
PHP汉字转换拼音的函数代码
2015/12/30 PHP
php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
2016/12/07 PHP
客户端静态页面玩分页
2006/06/26 Javascript
Js切换功能的简单方法
2010/11/23 Javascript
jquery购物车实时结算特效实现思路
2013/09/23 Javascript
jquery validate添加自定义验证规则(验证邮箱 邮政编码)
2013/12/04 Javascript
Javascript快速排序算法详解
2014/12/03 Javascript
AngularJS控制器controller给模型数据赋初始值的方法
2017/01/04 Javascript
jQuery操作之效果详解
2017/05/19 jQuery
基于ExtJs在页面上window再调用Window的事件处理方法
2017/07/26 Javascript
Vue代码分割懒加载的实现方法
2017/11/23 Javascript
JavaScript实现区块链
2018/03/14 Javascript
vue组件实现移动端九宫格转盘抽奖
2020/10/16 Javascript
windows下python模拟鼠标点击和键盘输示例
2014/02/28 Python
在Python的Django框架下使用django-tagging的教程
2015/05/30 Python
Python探索之SocketServer详解
2017/10/28 Python
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
2018/07/04 Python
pyspark操作MongoDB的方法步骤
2019/01/04 Python
django模板结构优化的方法
2019/02/28 Python
PyCharm中如何直接使用Anaconda已安装的库
2020/05/28 Python
jupyter notebook快速入门及使用详解
2020/11/13 Python
windows系统Tensorflow2.x简单安装记录(图文)
2021/01/18 Python
台湾网购生鲜第一品牌:i3Fresh爱上新鲜
2017/10/26 全球购物
俄罗斯便宜的在线服装商店:GroupPrice
2020/04/10 全球购物
项目资料员岗位职责
2013/12/10 职场文书
酒店工程部主管岗位职责
2015/04/16 职场文书
幼儿园中班教学反思
2016/03/03 职场文书
有关花店创业的计划书模板
2019/08/27 职场文书
Python基于百度API识别并提取图片中文字
2021/06/27 Python
HTML基础详解(上)
2021/10/16 HTML / CSS
解决vue-router的beforeRouteUpdate不能触发
2022/04/14 Vue.js
MySQL使用IF语句及用case语句对条件并结果进行判断 
2022/09/23 MySQL