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代码
Mar 13 Python
Python MySQLdb Linux下安装笔记
May 09 Python
Python实现批量转换文件编码的方法
Jul 28 Python
python实现神经网络感知器算法
Dec 20 Python
python list删除元素时要注意的坑点分享
Apr 18 Python
python导入模块交叉引用的方法
Jan 19 Python
selenium处理元素定位点击无效问题
Jun 12 Python
python并发爬虫实用工具tomorrow实用解析
Sep 25 Python
基于Python实现大文件分割和命名脚本过程解析
Sep 29 Python
Django中提示消息messages的设置方式
Nov 15 Python
python 多线程中join()的作用
Oct 29 Python
python执行js代码的方法
May 13 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
33种Javascript 表格排序控件收集
2009/12/03 Javascript
JAVASCRIPT函数作用域和提前声明 分享
2013/08/22 Javascript
js获取下拉列表框中的value和text的值示例代码
2014/01/11 Javascript
jquery操作cookie插件分享
2014/01/14 Javascript
jQuery焦点图切换简易插件制作过程全纪录
2014/08/27 Javascript
jQuery实现设置、移除文本框默认值功能
2015/01/13 Javascript
javascript中的Function.prototye.bind
2015/06/25 Javascript
基于bootstrap3和jquery的分页插件
2015/07/31 Javascript
JavaScript脚本判断蜘蛛来源的方法
2015/09/22 Javascript
轻松实现javascript图片轮播特效
2016/01/13 Javascript
jQuery下拉框的简单应用
2016/06/24 Javascript
AngularJs ng-route路由详解及实例代码
2016/09/14 Javascript
jQuery中页面返回顶部的方法总结
2016/12/30 Javascript
JS实现移动端实时监听输入框变化的实例代码
2017/04/12 Javascript
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
vue项目实现github在线预览功能
2018/06/20 Javascript
vue.js项目 el-input 组件 监听回车键实现搜索功能示例
2018/08/25 Javascript
Vue.js 使用v-cloak后仍显示变量的解决方法
2018/11/19 Javascript
Vue.js路由实现选项卡简单实例
2019/07/24 Javascript
JS前端广告拦截实现原理解析
2020/02/17 Javascript
js实现简单的贪吃蛇游戏
2020/04/23 Javascript
解决vue的router组件component在import时不能使用变量问题
2020/07/26 Javascript
Python中用于检查英文字母大写的isupper()方法
2015/05/19 Python
pandas将numpy数组写入到csv的实例
2018/07/04 Python
Python图像处理之gif动态图的解析与合成操作详解
2018/12/30 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
2020/04/02 Python
HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
2014/04/10 HTML / CSS
印度首选时尚目的地:Reliance Trends
2018/01/17 全球购物
联想法国官方网站:Lenovo法国
2018/10/18 全球购物
CheapTickets泰国:廉价航班,查看促销价格并预订机票
2019/12/28 全球购物
活动总结模板
2014/05/09 职场文书
安全责任书怎么写
2014/07/28 职场文书
建国大业观后感
2015/06/01 职场文书
2016大一新生军训心得体会
2016/01/11 职场文书
WebWorker 封装 JavaScript 沙箱详情
2021/11/02 Javascript
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis