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获取当前路径实现代码
May 08 Python
Python自动化开发学习之三级菜单制作
Jul 14 Python
NumPy 如何生成多维数组的方法
Feb 05 Python
Python Flask前后端Ajax交互的方法示例
Jul 31 Python
python中for循环输出列表索引与对应的值方法
Nov 07 Python
python如何实现一个刷网页小程序
Nov 27 Python
python3.6环境安装+pip环境配置教程图文详解
Jun 20 Python
通过python 执行 nohup 不生效的解决
Apr 16 Python
Python批量删除mysql中千万级大量数据的脚本分享
Dec 03 Python
python 实现定时任务的四种方式
Apr 01 Python
Python实现byte转integer
Jun 03 Python
分位数回归模型quantile regeression应用详解及示例教程
Nov 02 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
239军机修复记
2021/03/02 无线电
用php和MySql来与ODBC数据连接
2006/10/09 PHP
java EJB 加密与解密原理的一个例子
2008/01/11 PHP
PHP 字符串分割和比较
2009/10/06 PHP
php中stream(流)的用法
2014/03/25 PHP
jQuery+PHP发布的内容进行无刷新分页(Fckeditor)
2015/10/22 PHP
yii2中关于加密解密的那些事儿
2018/06/12 PHP
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
js操作iframe兼容各种主流浏览器示例代码
2013/07/22 Javascript
jQuery页面加载初始化常用的三种方法
2014/06/04 Javascript
jQuery form 表单验证插件(fieldValue)校验表单
2016/01/24 Javascript
JavaScript SweetAlert插件实现超酷消息警告框
2016/01/28 Javascript
JQuery 设置checkbox值二次无效的解决方法
2016/07/22 Javascript
JS表单提交验证、input(type=number) 去三角 刷新验证码
2017/06/21 Javascript
vue-infinite-loading2.0 中文文档详解
2018/04/08 Javascript
Koa项目搭建过程详细记录
2018/04/12 Javascript
浅谈vue中使用编辑器vue-quill-editor踩过的坑
2020/08/03 Javascript
Python编程修改MP3文件名称的方法
2017/04/19 Python
Python cookbook(数据结构与算法)实现优先级队列的方法示例
2018/02/18 Python
Python Web程序部署到Ubuntu服务器上的方法
2018/02/22 Python
Python内置函数reversed()用法分析
2018/03/20 Python
python-视频分帧&多帧合成视频实例
2019/12/10 Python
利用pandas向一个csv文件追加写入数据的实现示例
2020/04/23 Python
基于Python的Jenkins的二次开发操作
2020/05/12 Python
python 如何利用argparse解析命令行参数
2020/09/11 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
2020/10/21 Python
Python实现我的世界小游戏源代码
2021/03/02 Python
谈谈对css属性box-sizing的了解
2017/01/04 HTML / CSS
尽职尽责村干部自我鉴定
2014/01/23 职场文书
节水倡议书范文
2014/04/15 职场文书
企业安全生产演讲稿
2014/05/09 职场文书
优秀员工自荐书
2015/03/06 职场文书
2015年收银员个人工作总结
2015/04/01 职场文书
幼儿园六一儿童节主持词
2015/06/30 职场文书
OpenCV 图像梯度的实现方法
2021/07/25 Python
python编程学习使用管道Pipe编写优化代码
2021/11/20 Python