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提示No module named images的解决方法
Sep 29 Python
python 类详解及简单实例
Mar 24 Python
如何实现删除numpy.array中的行或列
May 08 Python
Python3.7实现中控考勤机自动连接
Aug 28 Python
python3 selenium自动化 frame表单嵌套的切换方法
Aug 23 Python
python脚本实现音频m4a格式转成MP3格式的实例代码
Oct 09 Python
Python批量将图片灰度化的实现代码
Apr 11 Python
Python闭包与装饰器原理及实例解析
Apr 30 Python
彻底解决pip下载pytorch慢的问题方法
Mar 01 Python
用python自动生成日历
Apr 24 Python
Python scrapy爬取起点中文网小说榜单
Jun 13 Python
Python使用Opencv打开笔记本电脑摄像头报错解问题及解决
Jun 21 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使用gettimeofday函数返回当前时间并存放在关联数组里
2015/03/19 PHP
php简单获取目录列表的方法
2015/03/24 PHP
PHP实现在线阅读PDF文件的方法
2015/06/23 PHP
php微信公众平台配置接口开发程序
2016/09/22 PHP
兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码
2011/11/30 Javascript
JS判断当前日期是否大于某个日期的实现代码
2012/09/02 Javascript
只需一行代码,轻松实现一个在线编辑器
2013/11/12 Javascript
jQuery实现复选框全选/取消全选/反选及获得选择的值
2014/06/12 Javascript
html的DOM中document对象anchors集合用法实例
2015/01/21 Javascript
JS实现的最简Table选项卡效果
2015/10/14 Javascript
JS实现关闭当前页而不弹出提示框的方法
2016/06/22 Javascript
微信小程序 rich-text的使用方法
2017/08/04 Javascript
Vue-路由导航菜单栏的高亮设置方法
2018/03/17 Javascript
vue中组件的3种使用方式详解
2019/03/23 Javascript
jQuery实现动态加载(按需加载)javascript文件的方法分析
2019/05/31 jQuery
vue.js实现简单的计算器功能
2020/02/22 Javascript
vue中echarts引入中国地图的案例
2020/07/28 Javascript
浅析JavaScript预编译和暗示全局变量
2020/09/03 Javascript
解决Antd Table组件表头不对齐的问题
2020/10/27 Javascript
[01:20]DOTA2 齐天大圣至宝动态展示
2016/12/13 DOTA
python读取csv文件示例(python操作csv)
2014/03/11 Python
Python实现基本线性数据结构
2016/08/22 Python
从头学Python之编写可执行的.py文件
2017/11/28 Python
Python 从一个文件中调用另一个文件的类方法
2019/01/10 Python
python实现将文件夹内的每张图片批量分割成多张
2019/07/22 Python
520使用Python实现“我爱你”表白
2020/05/20 Python
UGG英国官方网站:UGG UK
2018/02/08 全球购物
新闻编辑自荐书范文
2014/02/12 职场文书
新兵入伍决心书
2015/09/22 职场文书
《三国志》赏析
2019/08/27 职场文书
聘任书的格式及模板
2019/10/28 职场文书
Pandas实现DataFrame的简单运算、统计与排序
2022/03/31 Python
Golang原生rpc(rpc服务端源码解读)
2022/04/07 Golang
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
2022/04/13 Python
Python如何用re模块实现简易tokenizer
2022/05/02 Python
MYSQL中文乱码问题的解决方案
2022/06/14 MySQL