pytorch中Tensor.new()的使用解析

 更新时间:2023年09月23日 09:05:21   作者:页页读  
这篇文章主要介绍了pytorch中Tensor.new()的使用解析,Tensor.new()是创建一个新的Tensor,该Tensor的type和device都和原有Tensor一致,且无内容,需要的朋友可以参考下

一、作用

创建一个新的Tensor,该Tensor的 type 和 device 都和原有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_inputs的type和device都与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中Tensor.new()的使用解析的文章就介绍到这了,更多相关Tensor.new()的使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python pandas轴旋转stack和unstack的使用说明

    Python pandas轴旋转stack和unstack的使用说明

    这篇文章主要介绍了Python pandas轴旋转stack和unstack的使用说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Python绘制随机彩色蟒蛇方法浅析

    Python绘制随机彩色蟒蛇方法浅析

    这篇文章主要介绍了python实现绘制随机彩色蟒蛇的效果,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-12-12
  • 浅谈tensorflow 中tf.concat()的使用

    浅谈tensorflow 中tf.concat()的使用

    今天小编就为大家分享一篇浅谈tensorflow 中tf.concat()的使用,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 利用Python实现绘制论文中的曲线图

    利用Python实现绘制论文中的曲线图

    这篇文章主要为大家详细介绍了如何利用Python语言实现绘制论文中需要的曲线图,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2023-03-03
  • 如何使用pandas读取txt文件中指定的列(有无标题)

    如何使用pandas读取txt文件中指定的列(有无标题)

    这篇文章主要介绍了如何使用pandas读取txt文件中指定的列(有无标题),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Python实现无损放大图片的示例代码

    Python实现无损放大图片的示例代码

    这篇文章主要为大家详细介绍了如何利用Python语言实现一个简单的无损放大图片小程序,可以支持将JPG/PNG图片无损放大上万像素,感兴趣的可以了解一下
    2022-08-08
  • python中常用的各种数据库操作模块和连接实例

    python中常用的各种数据库操作模块和连接实例

    这篇文章主要介绍了python中常用的各种数据库操作模块和连接实例,包括sqlite3、oracle、mysql、excel,需要的朋友可以参考下
    2014-05-05
  • 解决pyqt5异常退出无提示信息的问题

    解决pyqt5异常退出无提示信息的问题

    这篇文章主要介绍了解决pyqt5异常退出无提示信息的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python中的list.sort()方法和函数sorted(list)

    Python中的list.sort()方法和函数sorted(list)

    这篇文章主要介绍了Python中的list.sort()方法和函数sorted(list),sort()是列表的方法,修改原列表使得它按照大小排序,没有返回值,返回None
    2022-08-08
  • Pandas中时间序列的处理大全

    Pandas中时间序列的处理大全

    这篇文章主要给大家介绍了关于Pandas中时间序列处理的相关资料,pandas 是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的,需要的朋友可以参考下
    2021-06-06

最新评论