全面理解tensor编程中矩阵的行和列
经常会在编程中遇到理解矩阵行和列的事情。
1、要明确无论这个张量有多少维度,它的矩阵乘法都只能作用于最后两个维度。
例如:
import torcha = torch.rand([64, 32, 3, 4])
b = torch.rand([64, 32, 3, 4])c = torch.matmul(a, b.transpose(2, 3)) # 交换b的2,3两个维度print(c.shape)
# torch.Size([64, 32, 3, 3])
注意.dot方法只适用于两个向量的点积运算, torch.matmul是矩阵乘法运算。
2、对于张量的数学含义的理解
首先,一维张量不区分行向量和列向量,比如:
import torch
a = torch.rand([2, 3, 4]).view(-1)
print((a == a.T).all())
# tensor(True)
按照点积关系去理解,一维张量的数学含义是列向量:
import torch
a = torch.rand([2, 3]).view(-1)
b = torch.rand([6, 3])
print(torch.matmul(a, b)) # 1x6 dot 6x3
# tensor([0.8973, 1.0441, 1.3425])
print(torch.matmul(b, a)) # 6x3 dot 1x6
# RuntimeError: size mismatch, get 6, 6x3,6
但是如果不是一维变成二维,那么最底层向量的含义又变成了行向量:
import torch
a = torch.rand([1, 3])
b = torch.rand([3, 2])
print(torch.matmul(a, b))
# tensor([[0.8463, 0.9703]])
3、对于二维tensor索引的理解
和list一样,依然可以按照向下x向右y的角度理解tensor的索引关系:
4、axis和dim的理解
首先说结论,axis和dim的含义是一致的,只不过axis来自numpy, dim来自torch。调用torch.sum()方法时可以发现axis和dim参数都一样。
接着解释dim/axis的含义:为针对变量延着哪一个轴进行操作。
假设我们取张量的第一个元素进行操作,
如果dim=0,意思是让这个元素沿着x轴进行操作(向下);
如果dim=1,意思是让这个元素沿着y轴进行操作(向右);
如果dim=2,意思是让这个元素沿着z轴进行操作(向屏幕外)
。。。
import torch
a = torch.rand([2, 3, 4])
# 沿着哪个轴哪个轴就会消失
print(a.sum(dim=0).shape)
print(a.sum(dim=1).shape)
print(a.sum(dim=2).shape)# torch.Size([3, 4])
# torch.Size([2, 4])
# torch.Size([2, 3])
常用的两个维度的操作分别是layer维度和batch维度:
layer维度也可以简单这么理解,假设一个张量一共m维,那么当dim=m-1时就表示把张量最里层的向量进行操作,然后逐步向外扩展。此时也可以写作dim=-1。
比如想要对张量进行batch维度的操作,那么就让dim=batch_size所在的维度即可。
注意这里的dim和axis只面向一个维度的处理(第一个元素只能沿着一个轴操作),如果想对图像等对两个维度同时处理需要区分开。
相关文章:

全面理解tensor编程中矩阵的行和列
经常会在编程中遇到理解矩阵行和列的事情。 1、要明确无论这个张量有多少维度,它的矩阵乘法都只能作用于最后两个维度。 例如: import torcha torch.rand([64, 32, 3, 4]) b torch.rand([64, 32, 3, 4])c torch.matmul(a, b.transpose(2, 3)) # 交…...
【Kubernetes】常见面试题汇总(十)
目录 29.简述 Kubernetes 自动扩容机制? 30.简述 Kubernetes Service 类型? 31.简述 Kubernetes Service 分发后端的策略? 32.简述 Kubernetes Headless Service ? 29.简述 Kubernetes 自动扩容机制? (…...

CSS —— 界面布局
flexbox - 弹性盒子布局(弹性布局) 一维方向,横纵向排列。 采用flex布局的元素,称为 Flex 容器(flex container),简称"容器" flex-direction 用于设置主轴方向;子元素默…...

SpringBoot万级并发-jemeter-Address already in use: connect
一、场景 用Jmeter压力单测接口的时候,发现报 Response code:Non HTTP response code: java.net.BindException Response message:Non HTTP response message: Address already in use: connect 然后我这边是wondows的电脑操作压测的,操作系统win10&…...
P1228 地毯填补问题
 #include<bits/stdc.h> using namespace std; #define qw dfs(zxl-1,zyl-1,zx,zy,l); #define we dfs(zxl-1,zyl,zx,zyl,l); #define er dfs(zxl,zyl-1,zxl,zy,l); #define rt dfs(zxl,zyl,zxl,zyl,l);void dfs(int x,int y,int zx,int zy,int…...

【计算机网络】UDP TCP介绍
UDP & TCP介绍 UDP报文格式报文内容介绍端口号报文长度校验和载荷 TCP报文格式初步了解TCP机制确认应答超时重传连接管理滑动窗口流量控制拥塞控制紧急传输数据推送延时应答捎带应答面向字节流异常处理心跳机制 UDP 和 TCP 的区别 UDP 报文格式 对于网络协议, 本质上就是…...

JDBC初相识
文章目录 JDBC的由来JDBC的好处 JDBC核心API的介绍JDBC会用到的包JDBC四个核心对象JDBC访问数据库的步骤 客户端操作MySQL数据库的方式 使用第三方客户端来访问MySQL:SQLyog、Navicat 使用MySQL自带的命令行方式 通过Java来访问MySQL数据库,今天要学习…...
Go语言现代web开发07 map字典
Maps are complex data types used to store key-value pairs. Each key can appear only once on the map and can be used to find the value paired with that key. The default value for the map is nil. A nil map has no keys and keys cannot be added. 映射是用于存储…...

AI工具一键制作爆火的“汉语新解“卡片!
最近出现了一种很火的新玩法“汉语新解”。 AI把一个词汇,以一种特殊的视角,用幽默、讽刺等方式重新定义,然后生成一张精美的卡片。 这个玩法和之前我发的的吐槽工具玩法类似,主打的就是一个新颖、情绪释放。 今天教大家怎么快速…...
windows检查端口占用并关闭应用
要在Windows CMD中找到占用8888端口的应用并关闭该应用,你可以按照以下步骤操作: 打开命令提示符(CMD)。你可以通过在搜索栏输入 cmd 或使用 Win R 快捷键,然后输入 cmd 并回车来打开。 查找占用8888端口的进程。在C…...

机器学习-聚类算法
机器学习-聚类算法 1.AHC2. K-means3. SC4.MCL 仅个人笔记,感谢点赞关注! 1.AHC 2. K-means 3. SC 传统谱聚类:个人对谱聚类算法的理解以及改进 4.MCL 目前仅专注于NLP的技术学习和分享 感谢大家的关注与支持!...

keil 中 printf重定向
int fputc(int ch, FILE *f) {HAL_UART_Transmit(&huart1, (void*)&ch, 1, 1000);return ch;} 同时勾选,使用微库...

yum下载软件失败:‘Could not resolve host: mirrorlist .centos .org; Unknowm error
Loaded plugins: fastestmirror, ovl Determining fastest mirrors Could not retrieve mirrorlist http://mirrorlist.centos.org/?release7&archx86_64&repoos&infracontainer error was 14: curl#6 - “Could not resolve host: mirrorlist.centos.org; Unknow…...

云轴科技ZStack 获鲲鹏应用创新大赛2024上海赛区决赛一等奖
9月13日,鲲鹏应用创新大赛2024上海赛区决赛成功举办。经评委专家从方案创新性、技术领先性、商业前景以及社会价值四个维度严格评审,云轴科技ZStack参赛作品《ZStack鲲鹏原生开发方案》荣获上海赛区企业赛——原生开发赛道(互联网)…...

沉浸式体验Stability AI最新超强AI图片生成模型Ultra
2024年9月4日,亚马逊云科技在Amazon Bedrock上新了Stability AI最新的的三款文本图像生成模型:他们分别是Stable Image Ultra、Stable Diffusion 3 Large 和 Stable Image Core。全新的模型在处理多主题提示词、图像质量和图片排版上较上一代模型有显著提…...
网络安全宣传周的时间,举办活动的方式和意义
网络安全宣传周是中国国家层面为提升公众网络安全意识、普及网络安全知识、推广网络安全技能而设立的一项重要活动。以下是对网络安全宣传周的时间,举办活动的方式和意义的介绍: 时间:国家网络安全宣传周自2014年首次举办以来,每…...
Jacoco的XML报告详解
使用jacococli完成jacoco测试报告生成后,会看到有一个.xml结尾的文件,这个就是xml格式的覆盖率报告。除了xml还有csv、html格式的报告,本文进介绍xml报告。 DTD文件 在介绍jacoco的xml报告之前,我们应该先看一下对应的DTD文件的内容。(DTD的全称为Document Type Definitio…...

【数据结构与算法 | 灵神题单 | 合并链表篇】力扣2, 21, 445, 2816
1. 力扣2:两数相加 1.1 题目: 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可…...

【秒达开源】多功能中文工具箱源码:自部署 全开源 轻量级跨平台 GPT级支持+高效UI+Docker
【秒达开源】多功能中文工具箱源码发布:自部署、全开源、轻量级跨平台,GPT级支持高效UI,Docker/便携版任选,桌面友好丰富插件生态 这是一款集大成之作,专为追求高效与便捷的用户量身打造。它不仅支持完全自部署&#…...

【云原生安全篇】一文掌握Harbor集成Trivy应用实践
【云原生安全篇】一文掌握Harbor集成Trivy应用实践 目录 1 概念 1.1 什么是 Harbor 和 Trivy? 1.1.1 Harbor 1.1.2 Trivy 1.2 Harbor 与 Trivy 的关系 Trivy 在 Harbor 中的作用: 1.3 镜像扫描工作流程 2 实战案例:在Harbor 配置 Trivy …...

接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...

Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...