0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

张量t-product积还有另一种实现方式?

冬至子 来源:slandarer随笔 作者:slandarer 2023-07-21 11:45 次阅读

1.jpg

very amazing啊,这说明什么,这说明我们想要实现 t-product积 不用费劲的去搞循环矩阵,也不用去搞什么分块展开再折叠,我们要做的只是, 傅立叶变换--相乘--傅立叶逆变换 !!!

** PART.1 流程讲解**

原本的t-QR分解流程:

1.jpg

** PART.2 MATLAB实现**

原始版本t-product

function C=t_prod(A,B)
% @author:slandarer
% 用于进行张量t-product积
% A*B=fold(bcirc(A)·unfold(B))

% 获取张量大小
[l,p,n]=size(A);dimA=[l,p,n];
[p,m,n]=size(B);dimB=[p,m,n];
dimC=[l,m,n];

if dimA(2)~=dimB(1) || dimA(3)~=dimB(3) 
    error('Inner tensor dimensions must agree.');
end

% 对A,B进行unfold展开操作
ufold_A=reshape(permute(A,[2,1,3]),dimA(2),[])';
ufold_B=reshape(permute(B,[2,1,3]),dimB(2),[])';

% 对A构建循环矩阵
bcirc_A=zeros([l*n,p*n]);
for i=1:n
    bcirc_A(:,(1:p)+(i-1)*p)=circshift(ufold_A,l*(i-1),1);
end

% bcirc(A)·unfold(B)
AB=bcirc_A*ufold_B;

% 还原张量维度
C=ipermute(reshape(AB',dimC([2,1,3])),[2,1,3]);
end

fft版本t-product

function C=t_prod_fft(A,B)
% @author:slandarer
% 基于快速傅立叶变换的张量t-product积

if size(A,2)~=size(B,1) || size(A,3)~=size(B,3) 
    error('Inner tensor dimensions must agree.');
end

fftA=fft(A,[],3);
fftB=fft(B,[],3);
fftC=zeros([size(A,1),size(B,2),size(A,3)]);
for i=1:size(A,3)
    fftC(:,:,i)=fftA(:,:,i)*fftB(:,:,i);   
end
C=ifft(fftC,[],3);
end

比较测试

% test t-product
addpath('.t_product')

A=zeros(2,3,3);
A(:,:,1)=[1  2  3; 3  4  5];
A(:,:,2)=[5  6  7; 7  8  9];
A(:,:,3)=[9 10 11;11 12 13];

B=zeros(3,2,3);
B(:,:,1)=[1  2; 3  4; 5  6];
B(:,:,2)=[5  6; 7  8; 9 10];
B(:,:,3)=[9 10;11 12;13 14];


tic
C1=t_prod(A,B)
toc

tic
C2=t_prod_fft(A,B)
toc

C1(:,:,1) =

438 492

564 636

C1(:,:,2) =

438 492

564 636

C1(:,:,3) =

294 348

420 492

历时 0.005764 秒。

C2(:,:,1) =

438 492

564 636

C2(:,:,2) =

438 492

564 636

C2(:,:,3) =

294 348

420 492

历时 0.001014 秒。

可以发现结果完全相同,而fft版本代码更简短,而且因为省去了循环矩阵创建等操作,运行速度也相较于原始版本更快。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 比较器
    +关注

    关注

    14

    文章

    1634

    浏览量

    107099
  • FFT
    FFT
    +关注

    关注

    15

    文章

    434

    浏览量

    59310
  • MATLAB仿真
    +关注

    关注

    4

    文章

    176

    浏览量

    19903
  • 傅立叶变换
    +关注

    关注

    3

    文章

    99

    浏览量

    32351
收藏 人收藏

    评论

    相关推荐

    请问Vivado是否自动包含另一种算法?

    explore'而不是'default'。该文档解释'积极探索'正在使用替代选择。算法。Vivado是否自动包含另一种算法?
    发表于 11-06 09:32

    介绍蓝牙通信的另一种方式--BLE

    今天我们介绍蓝牙通信的另一种方式--BLE(Bluetooth Low Energy,蓝牙低功耗)。什么是BLE在《无线通信3:HC05/HC06经典蓝牙B...
    发表于 12-13 06:50

    另一种防止相间短路的电动机正反转控制

    另一种防止相间短路的电动机正反转控制
    发表于 10-09 22:30 536次阅读
    <b class='flag-5'>另一种</b>防止相间短路的电动机正反转控制

    另一种防止相间短路的正反转控制电路图

    另一种防止相间短路的正反转控制
    发表于 03-03 12:49 1038次阅读
    <b class='flag-5'>另一种</b>防止相间短路的正反转控制电路图

    另一种斯密特触发器电路图

    另一种斯密特触发器电路图
    发表于 04-08 18:18 1374次阅读
    <b class='flag-5'>另一种</b>斯密特触发器电路图

    另一种红外光束系统的方框图电路图

    另一种红外光束系统的方框图
    的头像 发表于 06-10 10:13 2058次阅读
    <b class='flag-5'>另一种</b>红外光束系统的方框图电路图

    另一种方式控制个舵机

    另一种方式控制个舵机。
    发表于 03-21 15:30 1次下载

    大功率氙气灯成为节能照明的另一种可能

    当下,提起照明行业的节能减排,大多数人会联想到LED产业。不过,还有这么群人,他们另辟蹊径,让“大功率氙气灯”成为照明行业的另一种可能。
    发表于 11-25 11:41 1901次阅读

    另一种姿态......谷歌正在以另一种方式重返中国

    谷歌直没有放弃中国市场,并且多次试图重返,但是由于不符合我国相关规定,所以没有成功。网络上直传2017谷歌将重回中国,但是目前看来都是谣言。虽然谷歌始终不能下重返,但是它正在另一种
    发表于 08-15 09:40 2228次阅读

    一种通过张量积图扩散的医学图像检索

    针对医学图像检索中相似性表达的自身困难,以及噪声影响的问题,提出一种通过张量积图进行扩散,利用其他数据点的上下信息改进基于纹理元的成对相似性度量的方法。首先,采用纹理元的统计方法进行医学图像特征描述
    发表于 12-22 17:09 1次下载
    <b class='flag-5'>一种</b>通过<b class='flag-5'>张量积</b>图扩散的医学图像检索

    卡博菲推出了另一种创新的安装方式:整合配线架安装

    常见的网格式桥架的安装方式有吊装、墙装、地板下安装、机柜直接安装等等,但这次在中石油数据中心的项目中,针对客户的需求进行研究后,卡博菲推出了另一种创新的安装方式:整合配线架安装。
    的头像 发表于 06-15 15:29 6029次阅读

    转换器(converter)是指将一种信号转换成另一种信号的装置

    转换器(converter)是指将一种信号转换成另一种信号的装置。信号是信息存在的形式或载体。在自动化仪表设备和自动控制系统中,常将一种信号转换成另一种与标准量或参考量比较后的信号,以
    的头像 发表于 07-02 08:25 6140次阅读

    快速演奏和紧凑即兴演奏的另一种失真天河扭曲

    电子发烧友网站提供《快速演奏和紧凑即兴演奏的另一种失真天河扭曲.zip》资料免费下载
    发表于 07-22 15:00 0次下载
    快速演奏和紧凑即兴演奏的<b class='flag-5'>另一种</b>失真天河扭曲

    所有行业的数据采集:双极性输入的另一种配置

    在今天的文章中,我们将介绍差动放大器配置,这是将ADAQ798x与双极性输入信号接口的另一种方式。这种配置可用于具有宽输入电压范围和带宽的双极性信号。我们将了解如何为任何给定的输入范围选择所需的外部元件,以及它们如何影响其他规格,如输入阻抗、噪声和直流误差。
    的头像 发表于 06-30 09:44 1086次阅读
    所有行业的数据采集:双极性输入的<b class='flag-5'>另一种</b>配置

    MATLAB | 这是我见过最离谱的转置操作

    注:此转置操作与 t-product 相对应,在其他类型张量运算中的转置操作可能有不同的定义方式,请注意区分。
    的头像 发表于 07-21 11:50 791次阅读
    MATLAB | 这是我见过最离谱的转置操作