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

爱因斯坦求和 torch

目录

向量点积

矩阵乘法

矩阵转置

向量转换相机坐标系



在 Python 的科学计算库(如 NumPy)中,einsum 是一个强大的函数,它可以简洁地表示各种张量运算。下面是几个不同类型的使用示例:


向量点积


向量点积是两个向量对应元素相乘后求和的结果。使用 einsum 可以非常简洁地实现。
 

import numpy as np

# 创建两个向量
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

# 使用 einsum 计算向量点积
dot_product = np.einsum('i,i->', a, b)
print("向量点积结果:", dot_product)

矩阵乘法


矩阵乘法是将一个矩阵的行与另一个矩阵的列进行点积运算。
 

import numpy as np

# 创建两个矩阵
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])

# 使用 einsum 计算矩阵乘法
matrix_product = np.einsum('ij,jk->ik', A, B)
print("矩阵乘法结果:\n", matrix_product)


矩阵转置


矩阵转置是将矩阵的行和列进行交换。
 

import numpy as np

# 创建一个矩阵
M = np.array([[1, 2, 3], [4, 5, 6]])

# 使用 einsum 进行矩阵转置
transposed_matrix = np.einsum('ij->ji', M)
print("矩阵转置结果:\n", transposed_matrix)


这些示例展示了 einsum 在不同张量运算中的应用。它的优势在于能够用简洁的字符串表示复杂的运算,避免了使用显式的循环来实现这些运算,提高了代码的可读性和执行效率。

向量转换相机坐标系

torch.einsum('c,bCc->bC', world_up_vector, extrinsic_matrix[..., :3, :3])

等效代码:

new_world_up = torch.matmul(world_up_vector.unsqueeze(0), extrinsic_matrix[..., :3, :3])  # 形状 (B, 1, 3)
new_world_up = new_world_up.squeeze(1)  # 形状 (B, 3)

相关文章:

  • 【图解Agent】A Visual Guide to LLM Agents
  • 数据库基础之DQL
  • RocketMQ
  • 开源项目推荐|throttled-py - 支持多种策略及存储选项的 Python 限流库
  • c++set,map,unordered_set,unordered_map,multiset,multimap
  • 流影---开源网络流量分析平台(四)(分析引擎部署)
  • HTML 区块元素全面解析
  • JavaScript DOM与元素操作
  • DGNN-YOLO:面向遮挡小目标的动态图神经网络检测与追踪方法解析
  • LeeCode 283. 移动零
  • RuBii,基于人工智能的二次元角色创作平台
  • MySQL 的索引
  • 《深入探索 Python 数据分析:用 Pandas 高效处理与可视化大型数据集》
  • 搭建QNX Software Center的Docker环境
  • AIGC(生成式AI)试用 28 -- 跟着清华教程学习 - AIGC发展研究 3.0
  • 整合分块请求大模型返回的测试用例及小工具显示bug修复
  • 新手小白如何使用docsify本地搭建一个文档网站并一键发布公网
  • Vue 项目安装依赖报错:errno -4048
  • 线性表入门
  • 【蓝桥杯14天冲刺课题单】Day3