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 相关文章推荐
Python2.x版本中maketrans()方法的使用介绍
May 19 Python
Django查询数据库的性能优化示例代码
Sep 24 Python
Python实现PS图像调整黑白效果示例
Jan 25 Python
tensorflow1.0学习之模型的保存与恢复(Saver)
Apr 23 Python
pandas去重复行并分类汇总的实现方法
Jan 29 Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
Feb 21 Python
Python底层封装实现方法详解
Jan 22 Python
python使用pandas抽样训练数据中某个类别实例
Feb 28 Python
Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例
Mar 03 Python
Python读取JSON数据操作实例解析
May 18 Python
python的链表基础知识点
Sep 13 Python
Python使用pyecharts控件绘制图表
Jun 05 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程序61条面向对象分析设计的经验小结
2008/11/12 PHP
php学习笔记 类的声明与对象实例化
2011/06/13 PHP
PHP filesize函数用法浅析
2019/02/15 PHP
JQuery上传插件Uploadify使用详解及错误处理
2010/04/27 Javascript
jquery isType() 类型判断代码
2011/02/14 Javascript
浅析IE10兼容性问题(frameset的cols属性)
2014/01/03 Javascript
JQuery中serialize()用法实例分析
2015/02/06 Javascript
Javascript实现跑马灯效果的简单实例
2016/05/31 Javascript
BootStrap Table 分页后重新搜索问题的解决办法
2016/08/08 Javascript
Canvas 制作动态进度加载水球详解及实例代码
2016/12/09 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
2017/05/17 Javascript
原生js中ajax访问的实例详解
2017/09/19 Javascript
浅谈在vue项目中如何定义全局变量和全局函数
2017/10/24 Javascript
React Native开发封装Toast与加载Loading组件示例
2018/09/08 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
2020/12/04 Vue.js
[02:53]DOTA2亚洲邀请赛 NewBee战队巡礼
2015/02/03 DOTA
Python连接DB2数据库
2016/08/27 Python
Python装饰器实现几类验证功能做法实例
2017/05/18 Python
解决Python selenium get页面很慢时的问题
2019/01/30 Python
Flask配置Cors跨域的实现
2019/07/12 Python
pycharm创建scrapy项目教程及遇到的坑解析
2019/08/15 Python
Django1.11配合uni-app发起微信支付的实现
2019/10/12 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
2020/03/27 Python
加拿大消费电子和手机购物网站:The Source
2017/01/28 全球购物
介绍下static、final、abstract区别
2015/01/30 面试题
2014年党员公开承诺书范文
2014/03/28 职场文书
低碳日宣传活动总结
2014/07/09 职场文书
供应商食品安全承诺书
2015/04/29 职场文书
医院员工辞职信范文
2015/05/12 职场文书
工伤事故赔偿协议书
2015/08/06 职场文书
react国际化react-intl的使用
2021/05/06 Javascript
mybatis 解决从列名到属性名的自动映射失败问题
2021/06/30 Java/Android
7个关于Python的经典基础案例
2021/11/07 Python
MySQL数据库中varchar类型的数字比较大小的方法
2021/11/17 MySQL