0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

張量t-product積還有另一種實(shí)現(xiàn)方式?

冬至子 ? 來(lái)源:slandarer隨筆 ? 作者:slandarer ? 2023-07-21 11:45 ? 次閱讀

1.jpg

very amazing啊,這說(shuō)明什么,這說(shuō)明我們想要實(shí)現(xiàn) t-product積 不用費(fèi)勁的去搞循環(huán)矩陣,也不用去搞什么分塊展開(kāi)再折疊,我們要做的只是, 傅立葉變換--相乘--傅立葉逆變換 ?。?!

** PART.1 流程講解**

原本的t-QR分解流程:

1.jpg

** PART.2 MATLAB實(shí)現(xiàn)**

原始版本t-product

function C=t_prod(A,B)
% @author:slandarer
% 用于進(jìn)行張量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

% 對(duì)A,B進(jìn)行unfold展開(kāi)操作
ufold_A=reshape(permute(A,[2,1,3]),dimA(2),[])';
ufold_B=reshape(permute(B,[2,1,3]),dimB(2),[])';

% 對(duì)A構(gòu)建循環(huán)矩陣
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

比較測(cè)試

% 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

歷時(shí) 0.005764 秒。

C2(:,:,1) =

438 492

564 636

C2(:,:,2) =

438 492

564 636

C2(:,:,3) =

294 348

420 492

歷時(shí) 0.001014 秒。

可以發(fā)現(xiàn)結(jié)果完全相同,而fft版本代碼更簡(jiǎn)短,而且因?yàn)槭∪チ搜h(huán)矩陣創(chuàng)建等操作,運(yùn)行速度也相較于原始版本更快。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 比較器
    +關(guān)注

    關(guān)注

    14

    文章

    1614

    瀏覽量

    106834
  • FFT
    FFT
    +關(guān)注

    關(guān)注

    15

    文章

    430

    瀏覽量

    59023
  • MATLAB仿真
    +關(guān)注

    關(guān)注

    4

    文章

    175

    瀏覽量

    19841
  • 傅立葉變換
    +關(guān)注

    關(guān)注

    3

    文章

    99

    瀏覽量

    32294
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)問(wèn)Vivado是否自動(dòng)包含另一種算法?

    explore'而不是'default'。該文檔解釋'積極探索'正在使用替代選擇。算法。Vivado是否自動(dòng)包含另一種算法?
    發(fā)表于 11-06 09:32

    介紹藍(lán)牙通信的另一種方式--BLE

    今天我們介紹藍(lán)牙通信的另一種方式--BLE(Bluetooth Low Energy,藍(lán)牙低功耗)。什么是BLE在《無(wú)線通信3:HC05/HC06經(jīng)典藍(lán)牙B...
    發(fā)表于 12-13 06:50

    另一種防止相間短路的電動(dòng)機(jī)正反轉(zhuǎn)控制

    另一種防止相間短路的電動(dòng)機(jī)正反轉(zhuǎn)控制
    發(fā)表于 10-09 22:30 ?525次閱讀
    <b class='flag-5'>另一種</b>防止相間短路的電動(dòng)機(jī)正反轉(zhuǎn)控制

    另一種防止相間短路的正反轉(zhuǎn)控制電路圖

    另一種防止相間短路的正反轉(zhuǎn)控制
    發(fā)表于 03-03 12:49 ?1014次閱讀
    <b class='flag-5'>另一種</b>防止相間短路的正反轉(zhuǎn)控制電路圖

    另一種斯密特觸發(fā)器電路圖

    另一種斯密特觸發(fā)器電路圖
    發(fā)表于 04-08 18:18 ?1364次閱讀
    <b class='flag-5'>另一種</b>斯密特觸發(fā)器電路圖

    另一種紅外光束系統(tǒng)的方框圖電路圖

    另一種紅外光束系統(tǒng)的方框圖
    的頭像 發(fā)表于 06-10 10:13 ?2005次閱讀
    <b class='flag-5'>另一種</b>紅外光束系統(tǒng)的方框圖電路圖

    另一種方式控制個(gè)舵機(jī)

    另一種方式控制個(gè)舵機(jī)。
    發(fā)表于 03-21 15:30 ?1次下載

    大功率氙氣燈成為節(jié)能照明的另一種可能

    當(dāng)下,提起照明行業(yè)的節(jié)能減排,大多數(shù)人會(huì)聯(lián)想到LED產(chǎn)業(yè)。不過(guò),還有這么群人,他們另辟蹊徑,讓“大功率氙氣燈”成為照明行業(yè)的另一種可能。
    發(fā)表于 11-25 11:41 ?1863次閱讀

    另一種姿態(tài)......谷歌正在以另一種方式重返中國(guó)

    谷歌直沒(méi)有放棄中國(guó)市場(chǎng),并且多次試圖重返,但是由于不符合我國(guó)相關(guān)規(guī)定,所以沒(méi)有成功。網(wǎng)絡(luò)上直傳2017谷歌將重回中國(guó),但是目前看來(lái)都是謠言。雖然谷歌始終不能下重返,但是它正在另一種
    發(fā)表于 08-15 09:40 ?2209次閱讀

    一種通過(guò)張量積圖擴(kuò)散的醫(yī)學(xué)圖像檢索

    針對(duì)醫(yī)學(xué)圖像檢索中相似性表達(dá)的自身困難,以及噪聲影響的問(wèn)題,提出一種通過(guò)張量積圖進(jìn)行擴(kuò)散,利用其他數(shù)據(jù)點(diǎn)的上下信息改進(jìn)基于紋理元的成對(duì)相似性度量的方法。首先,采用紋理元的統(tǒng)計(jì)方法進(jìn)行醫(yī)學(xué)圖像特征描述
    發(fā)表于 12-22 17:09 ?1次下載
    <b class='flag-5'>一種</b>通過(guò)<b class='flag-5'>張量積</b>圖擴(kuò)散的醫(yī)學(xué)圖像檢索

    卡博菲推出了另一種創(chuàng)新的安裝方式:整合配線架安裝

    常見(jiàn)的網(wǎng)格式橋架的安裝方式有吊裝、墻裝、地板下安裝、機(jī)柜直接安裝等等,但這次在中石油數(shù)據(jù)中心的項(xiàng)目中,針對(duì)客戶的需求進(jìn)行研究后,卡博菲推出了另一種創(chuàng)新的安裝方式:整合配線架安裝。
    的頭像 發(fā)表于 06-15 15:29 ?5984次閱讀

    轉(zhuǎn)換器(converter)是指將一種信號(hào)轉(zhuǎn)換成另一種信號(hào)的裝置

    轉(zhuǎn)換器(converter)是指將一種信號(hào)轉(zhuǎn)換成另一種信號(hào)的裝置。信號(hào)是信息存在的形式或載體。在自動(dòng)化儀表設(shè)備和自動(dòng)控制系統(tǒng)中,常將一種信號(hào)轉(zhuǎn)換成另一種與標(biāo)準(zhǔn)量或參考量比較后的信號(hào),以
    的頭像 發(fā)表于 07-02 08:25 ?5952次閱讀

    快速演奏和緊湊即興演奏的另一種失真天河扭曲

    電子發(fā)燒友網(wǎng)站提供《快速演奏和緊湊即興演奏的另一種失真天河扭曲.zip》資料免費(fèi)下載
    發(fā)表于 07-22 15:00 ?0次下載
    快速演奏和緊湊即興演奏的<b class='flag-5'>另一種</b>失真天河扭曲

    所有行業(yè)的數(shù)據(jù)采集:雙極性輸入的另一種配置

    在今天的文章中,我們將介紹差動(dòng)放大器配置,這是將ADAQ798x與雙極性輸入信號(hào)接口的另一種方式。這種配置可用于具有寬輸入電壓范圍和帶寬的雙極性信號(hào)。我們將了解如何為任何給定的輸入范圍選擇所需的外部元件,以及它們?nèi)绾斡绊懫渌?guī)格,如輸入阻抗、噪聲和直流誤差。
    的頭像 發(fā)表于 06-30 09:44 ?945次閱讀
    所有行業(yè)的數(shù)據(jù)采集:雙極性輸入的<b class='flag-5'>另一種</b>配置

    MATLAB | 這是我見(jiàn)過(guò)最離譜的轉(zhuǎn)置操作

    注:此轉(zhuǎn)置操作與 t-product 相對(duì)應(yīng),在其他類型張量運(yùn)算中的轉(zhuǎn)置操作可能有不同的定義方式,請(qǐng)注意區(qū)分。
    的頭像 發(fā)表于 07-21 11:50 ?687次閱讀
    MATLAB | 這是我見(jiàn)過(guò)最離譜的轉(zhuǎn)置操作