当前位置: 首页 > news >正文

深度学习——torch相关函数用法解析

1. torch.ones()

torch.ones(*sizes, out=None) → Tensor

函数功能:返回一个全为1 的张量,形状由可变参数sizes定义。
参数:
sizes (int…) – 整数序列,定义了输出形状
out (Tensor, optional) – 结果张量
例子:

>>> torch.ones(2, 3)1  1  11  1  1
[torch.FloatTensor of size 2x3]>>> torch.ones(5)11111
[torch.FloatTensor of size 5]

2. torch.add()

torch.add(input, value, out=None)
对输入张量input逐元素加上标量值value,并返回结果到一个新的张量out,即 out=tensor+value。torch.add(input, value=1, other, out=None)
other 张量的每个元素乘以一个标量值value,并加到iput 张量上。返回结果到输出张量out。即,out=input+(other∗value)两个张量 input and other的尺寸不需要匹配,但元素总数必须一样。注意 :当两个张量形状不匹配时,输入张量的形状会作为输出张量的尺寸。

3. torch.zeros()

torch.zeros(*sizes, out=None) → Tensor

返回一个全为标量 0 的张量,形状由可变参数sizes 定义。
参数:
sizes (int…) – 整数序列,定义了输出形状
out (Tensor, optional) – 结果张量
例子:

>>> torch.zeros(2, 3)0  0  00  0  0
[torch.FloatTensor of size 2x3]生成2*3的张量矩阵>>> torch.zeros(5)00000
[torch.FloatTensor of size 5]x=torch.zeros(2,3,4)
print(x)tensor([[[0., 0., 0., 0.],[0., 0., 0., 0.],[0., 0., 0., 0.]],[[0., 0., 0., 0.],[0., 0., 0., 0.],[0., 0., 0., 0.]]])生成23*4的矩阵x=torch.zeros(2,3,4,5)
print(x)tensor([[[[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.]],[[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.]],[[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.]]],[[[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.]],[[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.]],[[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.]]]])
从后向前看,最后两位为数组的维度4*5,前一位3表示有34*5的矩阵,在前一位2表示,这样34*5的矩阵有2个,以此类推

4.torch.squeeze()

torch.squeeze(input, dim=None, out=None)

函数功能:
将输入张量形状中的1 去除并返回。 如果输入是形如(A×1×B×1×C×1×D),那么输出形状就为: (A×B×C×D)
当给定dim时,那么挤压操作只在给定维度上。例如,输入形状为: (A×1×B), squeeze(input, 0)
将会保持张量不变,只有用 squeeze(input, 1),形状会变成 (A×B)。

注意:
返回张量与输入张量共享内存,所以改变其中一个的内容会改变另一个。

参数:
input (Tensor) – 输入张量
dim (int, optional) – 如果给定,则input只会在给定维度挤压
out (Tensor, optional) – 输出张量

例子:

>>> x = torch.zeros(2,1,2,1,2)
>>> x.size()
(2L, 1L, 2L, 1L, 2L)
>>> y = torch.squeeze(x)
>>> y.size()
(2L, 2L, 2L)
>>> y = torch.squeeze(x, 0)
>>> y.size()
(2L, 1L, 2L, 1L, 2L)
>>> y = torch.squeeze(x, 1)
>>> y.size()
(2L, 2L, 1L, 2L)

参考自:https://blog.csdn.net/qq_42518956/article/details/103876885

http://www.lryc.cn/news/6290.html

相关文章:

  • ubuntu 20使用kubeadm安装k8s 1.26
  • 低代码开发平台|制造管理-生产过程管理搭建指南
  • python对多个csv文件进行合并(表头需一致)
  • Salesforce Apex调用邮件模板
  • windows本地开发Spark[不开虚拟机]
  • 一文教你快速估计个股交易成本
  • Leetcode—移除元素、删除有序数组中的重复项、合并两个有序数组
  • 面试(十)大疆 安全开发 C++1面
  • 短信链接跳转微信小程序
  • 吉林电视台启用乾元通多卡聚合系统广电视频传输解决方案
  • Linux常用命令1
  • 【C++进阶】一、继承(总)
  • AttributeError: module ‘lib‘ has no attribute ‘OpenSSL_add_all_algorithms
  • Python实现视频自动打码功能,避免看到羞羞的画面
  • 说说Knife4j
  • Java学习笔记-03(API阶段-2)集合
  • 「3」线性代数(期末复习)
  • 【CSDN竞赛】27期题解(Javascript)
  • 高压放大器在骨的逆力电研究中的应用
  • 思科网络部署,(0基础)入门实验,超详细
  • private static final Long serialVersionUID= 1L详解
  • 若依前后端分离版集成nacos
  • JAVA面试八股文一(mysql)
  • 动静态库概念及创建
  • 【H.264】码流解析 annexb vs avcc
  • 【最优化方法】1-最优化方法介绍
  • 数据结构 | 树 | 二叉树
  • 笔记:使用 unbuild 搭建 JavaScript 构建系统笔记
  • 【SpringBoot3.0源码】启动流程源码解析 •下
  • QT(56)-动态链接库-windows-导出变量-导出类