PyTorch中Tensor(张量)数据结构内部观察

上图中是一个张量embeds,打开其内部存储空间,我们可以看到内部的构成。在PyTorch中,Tensor 具有许多属性和方法。以下是其中一些关键的属性和方法:

属性:

  1. H

    在标准的PyTorch API中并没有直接表示为 .H 的属性,但在数学或某些库(如NumPy)中,.H 通常代表共轭转置(Conjugate Transpose),也称为Hermitian conjugate。在处理复数张量时,如果需要进行共轭转置操作,在PyTorch中应先使用 .conj() 方法获取复共轭,然后用 .T 进行转置,即 tensor.conj().T
  2. T

    .T 属性用于转置(Transpose)张量,它会改变张量的维度顺序。例如,对于二维张量(矩阵),转置会交换行和列的位置。
  3. .data

    返回一个与原张量共享相同存储区的新张量视图,通常用于直接访问底层数据而不涉及计算历史。
  4. .device

    返回一个 torch.device 对象,表示张量所在设备(CPU或GPU)。
  5. .dtype

    返回一个 torch.dtype 对象,代表张量元素的数据类型(如 torch.float32, torch.long 等)。
  6. .grad

    如果该张量是需要求梯度的一部分,则返回与该张量相关的梯度张量;否则为 None
  7. .requires_grad

    返回一个布尔值,表明此张量是否参与自动求导过程。
  8. .shape 或 .size()

    返回一个包含张量各维度大小的元组,表示张量的形状。
  9. .stride

    返回一个元组,表示沿着各个维度移动一个元素所需的步长。
  10. .is_contiguous()

    判断当前张量是否连续存储在内存中。
  11. .layout(高级用法):

    在某些特殊情况下,如使用MKLDNN等优化库时,描述张量的布局方式。

方法:

  1. .view(*shape) 或 .reshape(*shape)

    改变张量的维度大小,但不改变其实际数据内容。
  2. .transpose(dim0, dim1) 或 .t()

    对张量进行转置操作。
  3. .to(device, dtype=None, non_blocking=False)

    将张量转移到指定设备上或者更改数据类型。
  4. .clone()

    创建一个与原张量有相同数据的新张量,数据独立于原张量存储。
  5. .copy_(src)

    从源张量拷贝数据到当前张量。
  6. .detach()

    创建一个新的张量,与原张量数据相同但切断了计算图中的依赖关系。
  7. .numpy()

    转换张量为NumPy数组。
  8. .sum(dim=None, keepdim=False).mean(dim=None, keepdim=False) 等统计函数

    计算张量沿指定维度的和、平均数等统计量。
  9. .zero_().fill_(value) 等修改张量数值的方法

    直接对张量内部数据进行操作,例如清零所有元素或填充特定值。
  10. 对于深度学习模型训练相关的

    • .backward():执行反向传播计算梯度。
    • .requires_grad_(requires_grad=True):动态地设置张量是否要求梯度。

这些只是一部分基本和常用的属性及方法,实际上还有很多其他功能丰富的成员函数,可以根据实际需求查阅官方文档以获取完整列表和详细说明。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2809763.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

nginx.conf配置文件详解、案例,Nginx常用命令与模块

目录 一、Nginx常用命令 二、Nginx涉及的文件 2.1、Nginx 的默认文件夹 2.2、Nginx的主配置文件nginx.conf nginx.conf 配置的模块 2.2.1、全局块:全局配置,对全局生效 2.2.2、events块:配置影响 Nginx 服务器与用户的网络连接 2.2.3…

Python爬虫-爬取豆瓣高分电影封面

本文是本人最近学习Python爬虫所做的小练习。如有侵权,请联系删除。 页面获取url 代码 import requests import os import re# 创建文件夹 path os.getcwd() /images if not os.path.exists(path):os.mkdir(path)# 获取全部数据 def get_data():# 地址url "…

YOLOv9来了,可编程梯度信息与广义高效层聚合网络 助力全新检测SOTA前沿

本文首发:AIWalker 欢迎关注AIWalker,近距离接触底层视觉与基础AI技术 摘要 当今的深度学习方法侧重于如何设计最合适的目标函数,以便模型的预测结果最接近真实情况;与此同时,必须设计一个适当的架构,以便…

企业进行数字化转型的优势有哪些?

企业进行数字化转型的优势主要包括: 提高企业效率:通过自动化和高效化,减少重复性工作,提高工作效率和精度。 创新业务模式:更好地了解客户需求,快速响应市场变化,开发新的业务模式。 提升客户…

分享从零开始学习网络设备配置--任务5.1 组建直连式二层无线局域网

任务要求 (1)组建直连式二层无线局域网,网络拓扑图如图 (3)路由器、交换机和AC等网络设备端口IP地址规划如表 (4)组建直连式二层无线局域网,配置AP上线、WLAN业务参数和实现STA能正…

面试经典150题——存在重复元素 II

​"The harder you work for something, the greater youll feel when you achieve it." - Unknown 1. 题目描述 2. 题目分析与解析 2.1 思路一——暴力求解 该思路很简单,就是暴力的查找每一个元素,查看是否满足题目要求,满足就…

BUU [CISCN2019 华东南赛区]Web4

BUU [CISCN2019 华东南赛区]Web4 题目描述:Click to launch instance. 开题: 点击链接,有点像SSRF 使用local_file://协议读到本地文件,无法使用file://协议读取,有过滤。 local_file://协议: local_file…

算能RISC-V通用云开发空间编译pytorch @openKylin留档

终于可以体验下risc-v了! 操作系统是openKylin,算能的云空间 尝试编译安装pytorch 首先安装git apt install git 然后下载pytorch和算能cpu的库: git clone https://github.com/sophgo/cpuinfo.git git clone https://github.com/pytorc…

比创达元启新程 共创新佳绩:2023年度总结暨迎新年晚会圆满收官!

新的一年,万象更新。回顾2023年,我们携手走过的岁月,喜悦伴着汗水,成功伴着艰辛,遗憾激励奋斗。在过去的一年时间里,每个行业都经历着前所未有的变革与困难。我们比创达人也凭借着人心齐泰山移的团结之力&a…

Spring Boot 项目集成camunda流程引擎

使用camunda开源工作流引擎有:通过docker运行、使用springboot集成、部署camunda发行包、基于源代码编译运行等多种方式。 其中,通过源代码编译运行的方式最为复杂,具体参考:https://lowcode.blog.csdn.net/article/details/1362…

图片录入设备、方式与质量对图片转Excel的影响

随着数字化时代的到来,图片已经成为人们日常生活中不可或缺的一部分。在各行各业中,图片的应用越发广泛,从而促使了图片处理技术的快速发展。然而,图片的质量对于后续数据处理和分析的准确性和可靠性有着至关重要的影响。本文将从…

Windows系统搭建Elasticsearch引擎结合内网穿透实现远程连接查询数据

文章目录 系统环境1. Windows 安装Elasticsearch2. 本地访问Elasticsearch3. Windows 安装 Cpolar4. 创建Elasticsearch公网访问地址5. 远程访问Elasticsearch6. 设置固定二级子域名 Elasticsearch是一个基于Lucene库的分布式搜索和分析引擎,它提供了一个分布式、多…

HTB-Bizness

一、信息收集 访问ip自动跳转域名,host绑定域名后访问 目录爆破 有一个登录目录,访问发现是apahce ofbiz登录页面 发现存在漏洞 二、漏洞利用 在github上找到了图形化利用工具 使用工具反弹shell 得到flag 三、权限提升 从本地利用python开启http服务…

Android RecyclerView 如何展示自定义列表 Kotlin

Android RecyclerView 如何展示自定义列表 Kotlin 一、前提 有这么一个对象 class DeviceDemo (val name: String, val type: String, val address: String)要展示一个包含这个对象的列表 bluetoothDevices.add(DeviceDemo("bb 9800", "LE", "32:…

蛇形矩阵3

题目描述 把数1,2,3,4,5,…,N*N按照“蛇形3”放入N*N矩阵的中,输出结果。 下面是N6的蛇形3的图示 输入格式 第一行1个正整数:N,范围在[1,100]。 输出格式 N行&#x…

docker 容器访问 GPU 资源使用指南

概述 nvidia-docker 和 nvidia-container-runtime 是用于在 NVIDIA GPU 上运行 Docker 容器的两个相关工具。它们的作用是提供 Docker 容器与 GPU 加速硬件的集成支持,使容器中的应用程序能够充分利用 GPU 资源。 nvidia-docker 为了提高 Nvidia GPU 在 docker 中的…

Linux系统前后端分离项目

目录 一.jdk安装 二.tomcat安装 三.MySQL安装 四.nginx安装 五.Nginx负载均衡tomcat 六.前端部署 一.jdk安装 1. 上传jdk安装包 jdk-8u151-linux-x64.tar.gz 进入opt目录,将安装包拖进去 2. 解压安装包 这里需要解压到usr/local目录下,在这里新建一个…

力扣思路题:丑数

此题的思路非常奇妙,可以借鉴一下 bool isUgly(int num){if(num0)return false;while(num%20)num/2;while(num%30)num/3;while(num%50)num/5;return num1; }

学会玩游戏,智能究竟从何而来?

最近在读梅拉妮米歇尔《AI 3.0》,第九章谈到学会玩游戏,智能究竟从何而来? 作者: [美] 梅拉妮米歇尔 出版社: 四川科学技术出版社湛庐 原作名: Artificial Intelligence: A Guide for Thinking Humans 译者: 王飞跃 / 李玉珂 / 王晓 / 张慧 …

Xcode与Swift开发小记

引子 鉴于React Native目前版本在iOS上开发遇到诸多问题,本以为搞RN只需理会Javascript开发,没想到冒出CocoaPod的一堆编译问题。所以横下一条心,决定直接进攻iOS本身。不管你是用React Native,还是用Flutter,iOS下的…