四元数如何进行标准化?

假设有一个四元数的张量 r,它包含了两个四元数:

r = [ 1 2 3 4 4 3 2 1 ] r = \begin{bmatrix} 1 & 2 & 3 & 4 \\ 4 & 3 & 2 & 1 \\ \end{bmatrix} r=[14233241]
这里,第一个四元数是 q 1 = ( 1 , 2 , 3 , 4 ) q_1 = (1, 2, 3, 4) q1=(1,2,3,4),第二个四元数是 q 2 = ( 4 , 3 , 2 , 1 ) q_2 = (4, 3, 2, 1) q2=(4,3,2,1)

首先,我们计算每个四元数的模(长度):

n o r m ( q 1 ) = 1 2 + 2 2 + 3 2 + 4 2 = 30 {norm}(q_1) = \sqrt{1^2 + 2^2 + 3^2 + 4^2} = \sqrt{30} norm(q1)=12+22+32+42 =30

n o r m ( q 2 ) = 4 2 + 3 2 + 2 2 + 1 2 = 30 {norm}(q_2) = \sqrt{4^2 + 3^2 + 2^2 + 1^2} = \sqrt{30} norm(q2)=42+32+22+12 =30

所以,norm 张量是 30 , 30 \sqrt{30}, \sqrt{30} 30 ,30 r 的形状是 (2, 4),而 norm 的形状是 (2,),为了让除法可以在每个四元数上都进行计算,需要将 norm(2,) 转换成 (2, 1) 形状,这样每个模值就可以扩展到对应四元数的每个分量上了。

因此,代码:

norm = torch.sqrt(torch.sum(r**2, axis=1))
q = r / norm[:, None]

norm[:, None]norm 从形状 (2,) 转换为 (2, 1)。则norm 为:

n o r m = [ 30 30 ] {norm} = \begin{bmatrix} \sqrt{30} \\ \sqrt{30} \\ \end{bmatrix} norm=[30 30 ]

之后逐元素(element-wise)进行除法的(每个四元数都被其模除),故每个四元数被标准化:

q = [ 1 / 30 2 / 30 3 / 30 4 / 30 4 / 30 3 / 30 2 / 30 1 / 30 ] q = \begin{bmatrix} 1/\sqrt{30} & 2/\sqrt{30} & 3/\sqrt{30} & 4/\sqrt{30} \\ 4/\sqrt{30} & 3/\sqrt{30} & 2/\sqrt{30} & 1/\sqrt{30} \\ \end{bmatrix} q=[1/30 4/30 2/30 3/30 3/30 2/30 4/30 1/30 ]

这样,每个四元数的长度(模)就被标准化为1了。进行旋转操作时需要对四元数标准化,因为旋转不应该改变对象的大小,只改变其方向。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Langchain Agent研究】SalesGPT项目介绍(二)

【Langchain Agent研究】SalesGPT项目介绍(一)-CSDN博客 上节课,我们介绍了SalesGPT他的业务流程和技术架构,这节课,我们来关注一下他的项目整体结构、poetry工具和一些工程项目相关的设计。 项目整体结构介绍 我们把…

互联网医院架构系统设计与实现

随着互联网技术的快速发展,互联网医院作为一种新兴的医疗服务模式,正逐渐受到人们的关注和使用。本文将介绍互联网医院架构系统的设计原则和关键组件,以及如何实现一个安全、高效和可扩展的互联网医疗服务平台。 内容: 1. 引言 …

LeetCode Python - 9.回文数

文章目录 题目答案运行结果 题目 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 例如&am…

【开源】基于JAVA+Vue+SpringBoot的实验室耗材管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 耗材档案模块2.2 耗材入库模块2.3 耗材出库模块2.4 耗材申请模块2.5 耗材审核模块 三、系统展示四、核心代码4.1 查询耗材品类4.2 查询资产出库清单4.3 资产出库4.4 查询入库单4.5 资产入库 五、免责说明 一、摘要 1.1…

【JavaScript】文档对象模型(DOM)的基本概念

文章目录 1. 什么是DOM2. DOM的层次结构3. 获取DOM元素通过标签名获取元素通过ID获取元素通过类名获取元素 4. 操作DOM元素修改元素内容修改元素样式添加新元素 5. 事件处理6. 总结 文档对象模型(DOM)是 JavaScript 中一个重要的概念, 它允许…

【ECMAScript modules规范示例详解——介绍】

ECMAScript modules规范示例详解——介绍 1. 介绍2. 创建一个模块(module.js)3. 导入模块(main.js)4. 说明 1. 介绍 ECMAScript 模块 (ESM) 是 JavaScript 的官方标准,用于在 JavaScript 应用程序中导入和导出模块&am…

ChatGPT 4:新特性与优势

ChatGPT 4:新特性与优势 一、引言 ChatGPT 4是一款备受瞩目的人工智能模型,它以其强大的语言生成能力和智能回答能力,为用户提供了更高效、更便捷的对话体验。为了能够充分享受ChatGPT 4的各项功能,本文将向您详细介绍其新特性&…

Ps:信息面板

Ps菜单:窗口/信息 Window/Info 快捷键:F8 信息 Info面板提供了关于工作文档和当前操作的实时信息,包括鼠标指针的位置、取样点的颜色值(包括调整前后的对比值),以及当前所用工具的提示信息等等,…

PyTorch深度学习实战(26)——多对象实例分割

PyTorch深度学习实战(26)——多对象实例分割 0. 前言1. 获取并准备数据2. 使用 Detectron2 训练实例分割模型3. 对新图像进行推断小结系列链接 0. 前言 我们已经学习了多种图像分割算法,在本节中,我们将学习如何使用 Detectron2 …

GPT最新进展:推出视频功能!迭代即将来临!

随着人工智能的不断进步,ChatGPT正准备以其全新的视频功能大跃进,同时,备受期待的GPT-5也即将在今年露面,预示着AI领域即将迎来一场变革。 在最近一期充满激情的Unconfuse Me播客中,OpenAI的首席执行官Sam Altman与技…

【前端高频面试题--Vue基础篇】

🚀 作者 :“码上有前” 🚀 文章简介 :前端高频面试题 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬前端高频面试题--Vue基础篇 Vue基本原理双向绑定与MVVM模型Vue的优点计算属性与监听属性计算属性监…

C 练习实例69-约瑟夫环

题目&#xff1a;有n个人围成一圈&#xff0c;顺序排号。从第一个人开始报数&#xff08;从1到3报数&#xff09;&#xff0c;凡报到3的人退出圈子&#xff0c;问最后留下的是原来第几号的那位。 代码&#xff1a; #include <stdio.h> int main() {int n8;int table[n]…

【MySQL】-19 MySQL综合-5(MySQL日期和时间类型+MySQL字符串类型+MySQL二进制类型)

MySQL日期和时间类型MySQL字符串类型MySQL二进制类型 一 MySQL 日期和时间类型1.1 YEAR 类型1.2 TIME 类型1.3 DATE 类型1.4 DATETIME 类型1.5 TIMESTAMP 类型 二 MySQL 字符串类型2.1 CHAR 和 VARCHAR 类型2.2 TEXT 类型2.3 ENUM 类型12.4 SET 类型 三 MySQL 二进制类型BIT 类…

python+flask+django医院预约挂号病历分时段管理系统snsj0

技术栈 后端&#xff1a;python 前端&#xff1a;vue.jselementui 框架&#xff1a;django/flask Python版本&#xff1a;python3.7 数据库&#xff1a;mysql5.7 数据库工具&#xff1a;Navicat 开发软件&#xff1a;PyCharm . 第一&#xff0c;研究分析python技术&#xff0c…

python32-Python列表和元组之通过索引使用元素

列表和元组非常相似&#xff0c;它们都可包含多个元素&#xff0c;多个元素也有各自的索引。程序可通过索引来操作这些元素&#xff0c;只要不涉及改变元素的操作&#xff0c;列表和元组的用法是通用的。 1&#xff09;通过索引使用元素 列表和元组都可通过索引来访问元素&am…

浅谈人工智能之深度学习~

目录 前言&#xff1a;深度学习的进展 一&#xff1a;深度学习的基本原理和算法 二&#xff1a;深度学习的应用实例 三&#xff1a;深度学习的挑战和未来发展方向 四&#xff1a;深度学习与机器学习的关系 五&#xff1a;深度学习与人类的智能交互 悟已往之不谏&#xff0…

模拟发送 Ctrl+Alt+Del 快捷键

目录 前言 一、在 XP 系统上模拟 SAS 二、在不低于 Vista 的系统上模拟 SAS 2.1 一些细节 2.2 实现原理和应用 三、完整实现代码和测试 3.1 客户端控制台程序 3.2 服务程序 3.3 编译&测试程序 四、总结&更新 参考文献 前言 对于开启了安全登陆的窗口工作站…

nodejs爬虫框架

nodejs爬虫框架 在Node.js中&#xff0c;有一些常用的爬虫框架可以帮助你实现网页抓取和数据提取的任务。以下是几个流行的Node.js爬虫框架&#xff1a; 1. **Puppeteer**: Puppeteer 是由 Google 开发的一个用于控制 headless Chrome 或 Chromium 浏览器的 Node.js 库。它提供…

保护你的 Linux VPS:入门指南

简介 掌控自己的 Linux 服务器是一个尝试新事物并利用强大平台的机会。然而&#xff0c;Linux 服务器管理员必须像对待任何网络连接的机器一样谨慎&#xff0c;以保持其安全性和稳定性。 有许多不同的安全主题属于“Linux 安全”这一总类&#xff0c;并且对于 Linux 服务器的适…

python-产品篇-游戏-玛丽冒险

文章目录 开发环境要求运行方法代码效果 开发环境要求 本系统的软件开发及运行环境具体如下。 &#xff08;1&#xff09;操作系统&#xff1a;Windows 7、Windows 8、Windows 10。 &#xff08;2&#xff09;Python版本&#xff1a;Python 3.7.0。 &#xff08;3&#xff09;…