张量 t-product 积(matlab代码)

参考文献:Tensor Robust Principal Component Analysis with a New Tensor Nuclear Norm

首先是文章2.3节中 t-product 的定义:

块循环矩阵:

参考知乎博主的例子及代码:(t-product与t-QR分解,另一篇傅里叶对角化也很值得学习)

Matlab 复制代码
% A=zeros([3,2,2]);
% B=zeros([2,1,2]);
% 
% A(:,:,1)=[1 0;0 2;-1 3];
% A(:,:,2)=[-2 1;-2 7;0 -1];
% 
% B(:,:,1)=[3;-1];
% B(:,:,2)=[-2;-3];

A=rand(3,2,5);
B=rand(2,1,5);

C=t_product(A,B)

function C=t_product(A,B)
    % @author:slandarer
    % 获取张量大小
    [l,p,n]=size(A);dimA=[l,p,n];
    [p,m,n]=size(B);dimB=[p,m,n];
    dimC=[l,m,n];
    
    % 对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]);
    CC = fft(C, [], 3)   % 观察,张量C后n3-1个切片呈共轭对称
end
相关推荐
枫叶林FYL2 分钟前
【自然语言处理 NLP】 大语言模型(LLM)系统工程(Large Language Model Engineering)5.1.2 ZeRO与显存优化技术
人工智能·深度学习·机器学习
龙文浩_18 分钟前
AI机器学习中NumPy随机种子的应用
人工智能·python·深度学习·神经网络·机器学习
AI先驱体验官19 分钟前
数字人时代来临:实时互动数字人解决方案深度解析
大数据·网络·人工智能·深度学习·机器学习·重构·实时互动
大江东去浪淘尽千古风流人物24 分钟前
【Basalt】 VIO(sqrt_keypoint_vio)主流程measure函数梳理
数据库·人工智能·python·机器学习·oracle
Eloudy34 分钟前
线性算子 A 的迹为 A 的任意矩阵表示的迹
机器学习·矩阵
哈伦20191 小时前
Python 生成随机数
python·机器学习·pandas
Neptune11 小时前
一文讲透 RAG 原理:让大模型「看见」你的私有知识
人工智能·深度学习·机器学习
人工智能培训1 小时前
样本效率与安全探索的矛盾解析及平衡路径
大数据·人工智能·深度学习·算法·机器学习·知识图谱·故障诊断
乐园游梦记1 小时前
下载 Docker 镜像(CVAT)资源
人工智能·python·深度学习·yolo·机器学习·cvat
热爱生活的猴子1 小时前
什么情况是过拟合,什么情况判定为欠拟合,什么情况下判定微调后效果不如预训练,什么情况下说明是分类边界模糊,什么是权重过大导致过拟合
人工智能·机器学习·分类