t-product的matlab实现

news2024/11/29 8:39:13

t-product是一个比较好的概念,相对应于矩阵中的乘法。

定义如下

这里的 circ(A),MatVec(b) 的定义分别如下

这么定义的原因是为了映射到FFT域里面去,简化计算。

上面的一段摘录说明:直接按照定义来计算,会耗费大量的计算资源。因此,实际使用中是应用的另外一种方法“FFT”.

这两个等式是相等的,因为下面的公式其实施加了FFT变换之后又做了逆变换。注意发现上面的等式很有意思,结合文字好好看一下就有下面的计算方式。

计算方式

简单的说, A∗B 的过程如下

  1. 先把 A,B 模三展开,对每一个切片分别施加FFT, A¯(i),B¯(i)
  2. 切片对应相乘, A¯(i)∗B¯(i)
  3. 折叠回张量。

具体的原理,只知道可以这么做。具体理论分析,等待后续的知识(也在这篇论文上)。

Matlab代码实现

function C = tprod(A, B)
% tensor-tensor product of two 3-order tensors : C = A * B
% compute in the Fourier domain, efficiently
% A - n1 x n2 x n3 tensor
% B - n2 x l  x n3 tensor
% C - n1 x l  x n3 tensor
[n1, ~, n3] = size(A);
l = size(B, 2);
Af = fft(A, [], 3);
Bf = fft(B, [], 3);
Cf = zeros(n1, l, n3);
for i = 1 : n3
    Cf(:, :, i) = Af(:, :, i) * Bf(:, :, i);
end
C = ifft(Cf, [], 3);
end
fft(A,[],3)是标准的三阶张量沿模三做FFT的matlab操作.不必理会。

一个模拟数据验证

clc
clear all
%如何计算两个张量的t-product
X1 = 1:12;
X1 = reshape(X1,[3,4]);
X2 = 13:24;
X2 = reshape(X2,[3,4]);
X(:,:,1) = X1;
X(:,:,2) = X2;
Y1 = ones(4,3);
Y2 = ones(4,3);
Y(:,:,1) = Y1;
Y(:,:,2) = Y2;
C = tprod(X,Y)
C1 = X1*Y1 + X2*Y2
C2 = X2*Y1 + X1*Y2

结果如下

C
C(:,:,1) =
    92    92    92
   100   100   100
   108   108   108

C(:,:,2) =
    92    92    92
   100   100   100
   108   108   108

C1 =
    92    92    92
   100   100   100
   108   108   108

C2 =
    92    92    92
   100   100   100
   108   108   108

总结

简单的记录一下,免的遗忘。

参考文献:Factorization strategies for third-order tensors

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

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

相关文章

【2.5w字吐血总结 | 新手必看】全网最详细MySQL笔记

写在前面 鉴于全网MySQL知识点的总结分散难懂、良莠不齐,为了避免初学者少走弯路,更好更快地掌握MySQL知识,博主特地将自己所学的笔记分享出来。 如果想深度理解掌握MySQL,欢迎订阅专栏:MySQL进阶之路【秋说】&#…

adguarg通过dns代理全局过滤广告,全系统操作指南

路由器dns配置 安卓(鸿蒙) 设置>>其他网络与连接>>私人DNS(不同手机系统设置名称会有些许出入,但是大差不差) (左图鸿蒙):将域名m.centos.chat填入手机私人DNS IOS系统 将代理服务器IP&am…

delphi电子处方流转(医院)

【delphi电子处方流转(医院)】支持 就诊登记、电子处方上传预核验、处方处方医保电子签名、电子处方上传、电子处方撤销、电子处方信息查询、电子处方审核结果查询、电子处方取药结果查询、电子处方药品目录查询等功能。

UE4动作游戏实例RPG Action解析四:装备系统

导语: 以加血道具为例,详细分析拆解ActionRPG的装备系统,包含装备系统需求和数据结构设计,以及实现 一、装备系统需求: 装备槽: 已获取装备和未获取装备: 当已经装备一个道具时,再次捡到道具,会把道具放在装备库,不会放在装备槽中, 当没有装备道具时,会拾取道具…

Digicert证书:您的网络安全守护神

在当今数字化的世界中,网络安全已经成为每一个企业和个人必须面对的问题。而Digicert品牌证书,就是您网络安全的最佳选择。它不仅具有强大的安全性和稳定性,还能广泛应用于各种场景,为您提供全方位的保护。 首先,我们要…

Xrdp+内网穿透实现远程访问Linux Kali桌面

XrdpCpolar实现远程访问Linux Kali桌面 文章目录 XrdpCpolar实现远程访问Linux Kali桌面前言1. Kali 安装Xrdp2. 本地远程Kali桌面3. Kali 安装Cpolar 内网穿透4. 配置公网远程地址5. 公网远程Kali桌面连接6. 固定连接公网地址7. 固定地址连接测试 前言 Kali远程桌面的好处在于…

【硬核】把一个MOS管制作成开关电路

你要是想读懂这篇文章,请先去了解MOS管的基础知识,本文是在基础之上做出的一部分扩展,可能有一点点深,请各位同学注意。 本文带你了解MOS管的开通/关断原理,使用PMOS做上管、NMOS做下管都是比较方便,使用PM…

腾讯云服务器新用户专享优惠券,腾讯云新用户代金券领取入口汇总

什么是腾讯云新用户专享优惠券? 腾讯云新用户专享优惠券是腾讯云为新用户提供的一种特别优惠。你可以在购买腾讯云服务器时使用这些优惠券,以更低的价格获得优质的云服务。 为了回馈广大新用户,腾讯云服务器推出了一系列优惠活动&#xff0…

KeyarchOS的CentOS迁移实践:使用操作系统迁移工具X2Keyarch V2.0

KeyarchOS的CentOS迁移实践:使用操作系统迁移工具X2Keyarch V2.0 作者: 猫头虎博主 文章目录 KeyarchOS的CentOS迁移实践:使用操作系统迁移工具X2Keyarch V2.0🐅摘要引言1. 迁移前的精心准备1.1 系统环境介绍1.2 深度数据验证1.2.…

Linux下好玩有趣的指令(持续更新)

适用于centOS下,别的Linux换个指令就行,内容是一样的 centOS有的指令安装不了?试试拓展yum源,再安装基本就OK啦! yum install -y epel-release 下面是作者在centOS环境下亲测可以使用的,如果你是root用户直…

【ES6标准入门】JavaScript中的模块Module语法的使用细节:export命令和imprt命令详细使用,超级详细!!!

😁 作者简介:一名大四的学生,致力学习前端开发技术 ⭐️个人主页:夜宵饽饽的主页 ❔ 系列专栏:JavaScript进阶指南 👐学习格言:成功不是终点,失败也并非末日,最重要的是继…

win10查看wifi密码

文章目录 标题win10查看wifi密码命令方式窗口 标题win10查看wifi密码 命令方式 # name 为指定的wifi名称 netsh wlan show profiles name"TP-LINK_1946" keyclear窗口

​如何使用ArcGIS Pro制作渐变河流效果

对于面要素的河流水系,制作渐变效果方法比较简单,如果是线要素的河流有办法制作渐变效果吗,答案是肯定的,这里为大家介绍一下制作方法,希望能对你有所帮助。 数据来源 本教程所使用的数据是从水经微图中下载的水系数…

在Windows系统中查找GitBash安装位置

使用注册表可以轻松获取: reg query HKEY_LOCAL_MACHINE\SOFTWARE\GitForWindows /v InstallPath | findStr InstallPath此时输出一串字符, 通过字符串切割即可获取:

PostgreSQL技术大讲堂 - 第34讲:调优工具pgBagder部署

PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUG PG技术大讲堂。 第34讲&#…

MYSQL中的触发器TRIGGER

1.概念 触发器是一个特殊的存储过程,当触发器保护的数据发生变更时就会触发。 2.特性 1.触发器与表息息相关,一般我们一个表创建六个触发器。 2.六个触发器其实是三种类六个 insert 类型 before | after insertupdate 类型 before | af…

Vue h5页面手指滑动图片

场景: 四张图,要求随着手指滑动而滑动 代码: imgs是父盒子 poster-item是每个图片 .imgs {white-space: nowrap;overflow: hidden;overflow-x: auto;margin-bottom: 17px;.poster-item {display: inline-block;vertical-align: middle;wid…

第十九章,Java绘图

Graphics类 Graphics类是所有图形上下文的抽象基本类,它允许应用程序在组件以及闭屏图像上进行绘制 Graphics类封装了Java支持的基本绘图操作所需的状态信息,主要包括颜色、字体、画笔、文本、图像等 Graphics类提供了常用的绘图方法,利用这些…

【AI视野·今日Robot 机器人论文速览 第六十二期】Wed, 25 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Wed, 25 Oct 2023 Totally 25 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers EquivAct: SIM(3)-Equivariant Visuomotor Policies beyond Rigid Object Manipulation Authors Jingyun Yang, Congyue Deng,…

【AI视野·今日Robot 机器人论文速览 第六十四期】Fri, 27 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Fri, 27 Oct 2023 Totally 27 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers 6-DoF Stability Field via Diffusion Models Authors Takuma Yoneda, Tianchong Jiang, Gregory Shakhnarovich, Matthew R. …