3.Tensors For Beginners- Forward and Backward Transformations

2023-10-03 22:54

本文主要是介绍3.Tensors For Beginners- Forward and Backward Transformations,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

张量在不同坐标系之间来回移动的规则究竟如何。

之前说过,张量在坐标系变化下是不变的,故了解如何在坐标系之间来回移动对理解张量很重要。

Forward:旧基 到 新基

old basis:旧基

这是在二维坐标系下的两组基。

线性代数中的基: 向量空间V中的一组向量 若满足:
1)线性无光
2)向量中间V中的任何一个向量 都可由 该组向量 线性表出,
则称该组向量为 向量空间V的 一组基

前向变换(Forward):从旧基转移到新基

如何转移?

--------------利用旧基向量 构建 新基向量

用旧基的线性组合来表示新基

可将这四个系数存储到一个2 x 2的矩阵F中,

矩阵F就是正向变换。

后向变换(Backward):从新基转移到旧基

知道这个矩阵B后,就知道如何进行后向转换了,如何从新基转移到旧基

把向前转换 和 向后转换 两个矩阵进行相乘, F*B= E

 

解释:
new(\tilde e_{1},\tilde e_{2})^{T} = F( e_{1}, e_{2})^{T}

两边左乘F^{-1}

F^{-1} * new(\tilde e_{1},\tilde e_{2})^{T} = ( e_{1}, e_{2})^{T}

( e_{1}, e_{2})^{T} = F^{-1} * new(\tilde e_{1},\tilde e_{2})^{T}

F^{-1} 就是上边的 B矩阵

这是二维的例子。

现推广到n维,

也是类似的,有n个旧基:e_{1} , e_{2} ...e_{n},n个新基\tilde e_{1} , \tilde e_{2} ...\tilde e_{n}

向前转换:Forward

但这么多方程看起来有点烦人, 

试试用公式简化

观察一下上图,就能写出下式:

一个新基 由 旧基中的所有向量的线性组合表示

该公式总结了上述的所有方程。

后向变换:Backward 

也是类似的

用新基的所有向量的线性组合来表示 旧基中的任一向量

并把这些系数写到一个 n x n的矩阵B中

同样的道理,可以用一个公式来总结 上述n个方程。

对于获得的两个矩阵,我们如何证明它们是互逆的?

观察上面最底下的这个式子, 其不就是在用 n个旧基向量的求和 来 构建一个 旧基向量吗,

那么中间那部门应该等于多少?

当然是 k==i 时,中间那部分就为1, 当 k ≠ i 时,中间那块为0.

这种 if i = k,就为1; if i≠k,就为0; 是普遍现象,我们把它称为Kronecker Delta

就是表示出一个单位矩阵

解释:
new(\tilde e_{1},\tilde e_{2}...\tilde e_{n})^{T} = F( e_{1}, e_{2}...e_{n})^{T}

两边左乘F^{-1}

F^{-1} * new(\tilde e_{1},\tilde e_{2}...\tilde e_{n})^{T} = ( e_{1}, e_{2}...e_{n})^{T}

( e_{1}, e_{2}...e_{n})^{T} = F^{-1} * new(\tilde e_{1},\tilde e_{2}...\tilde e_{n})^{T}

F^{-1} 就是上边的 B矩阵

 

这篇关于3.Tensors For Beginners- Forward and Backward Transformations的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/840

相关文章

usaco 1.2 Transformations(模拟)

我的做法就是一个一个情况枚举出来 注意计算公式: ( 变换后的矩阵记为C) 顺时针旋转90°:C[i] [j]=A[n-j-1] [i] (旋转180°和270° 可以多转几个九十度来推) 对称:C[i] [n-j-1]=A[i] [j] 代码有点长 。。。 /*ID: who jayLANG: C++TASK: transform*/#include<

前向保密(Forward Secrecy,也称为完美前向保密,Perfect Forward Secrecy,PFS)

前向保密(Forward Secrecy,也称为完美前向保密,Perfect Forward Secrecy,PFS)是一种加密通信协议的属性,它确保即使在未来某个时间点上长期使用的私钥(如服务器的私钥)被泄露,攻击者也无法解密之前已经捕获并记录的加密通信内容。这意味着每次通信会话都使用一个独立的、临时的会话密钥进行加密,即使主私钥被泄露,之前的通信记录也仍然保持安全。 工作原理 前向保密通常

java ee之forward跳转中的那些坑

修正前: 修正后:‘ 还有一种错误,如下 修正前: 修正后: 或者 接下来的这个错误,与之前的雷同 修正前: 修正后: 完美解决。

Linux中路由功能及ip_forward转发配置

操作系统中路由功能有着至关重要的作用,它决定了网络数据包如何在网络中传输,最终到达目的地。本文简要介绍Linux中的路由功能实现以及IP转发的配置,并验证在容器环境下配置net.ipv4.ip_forward的必要性,以加深理解。 1、Linux中路由功能 操作系统中路由功能有着至关重要的作用,它决定了网络数据包如何在网络中传输,最终到达目的地。当数据包从一个网络接口发送到另一个网络接口时

C++中完美转发std::forward的一点点分析

文章目录 前提`std::forwar`是如何实现的?`forwarder(a)`的调用过程`forwarder(10)`的调用过程`forwarder(std::move(a))`的调用过程`std::move`是如何实现的总结 前提 之前在C++中的万能引用,引用折叠,完美转发中(如果你没有看过这篇文章,建议先去看看),主要介绍了万能引用,引用折叠的概念和使用,关于完美转发只

forward 和redirect权区别

1.地址栏是否转换 forward是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址,他是不会改变Request的值,如果你需要在下一个页面中能从中获取新的信息的话,你可以Request.setAttribute()来放置一些标志,这样从下一个页面中获取。 orward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容 再发给浏览

右值,右值引用,move,forward

区分左值和右值 一个最为典型的判别方法就是,在赋值表达式中,出现在等号左边的就是“左值”,而在等号右边的,则称为“右值”。 还有一个说法,就是可以取地址的、有名字的就是左传,反之,不能取地址的、没有名字的就是右值。 右值又分将亡值(xvalue),纯右值。 引用 引用类型本身自己并不拥有所绑定对象的内存,只是该对象的一个别名。 右值引用 右值引用标记为T&& 用右值引用

C++相关概念和易错语法(27)(forward、引用折叠)

上篇文章着重分享了对右值的理解以及相关应用(移动构造和移动赋值),但是右值引用还有很多坑需要填,这篇文章会进一步探究 1.引用折叠(万能引用) 当我们手动实现构造函数和移动构造时是分成两个函数来写的,赋值和移动赋值也是,本质上是因为移动赋值的代码实现不同,构造是深拷贝,而移动构造类似于浅拷贝,这也是根据右值引用、左值引用对象的特性不同做的处理。 但是还存在一种情况,即需要先将左值引用和右值引

ResNeXt - Aggregated Residual Transformations for Deep Neural Networks

《Aggregated Residual Transformations for Deep Neural Networks》是Saining Xie等人于2016年公开在arXiv上: https://arxiv.org/pdf/1611.05431.pdf 创新点 1.在传统Resnet基础上采用group convolution,在不增加参数量的前提下,获得更强的representat

Glide 加载刷新闪动,自定义Transformations 必须实现的方法

前言 我们使用Glide加载图片,使用自定义对Transformations 转换器的时候,都忽略了定制变换必须实现的方法: updateDiskCacheKeyequals() / hashCode()! 官网这么说明的: 为了让内存缓存正常地工作你是否必须实现 equals() 和 hashCode() 方法。很不幸,即使你没有复写这两个方法,BitmapTransformati