2 hungryof Hungryof 于 2016.09.18 16:18 提问

为什么matlab中相同大小的矩阵运行速度差异巨大

I extracted features from last two conv layers from model VGG-19, separately named X and Y. X and Y share the same size 19*19*512. Then I apply dimension reduction to X and Y with PCA. And I get the size 361*20. 20 is the dimension.

Then I compute X's inner product, Y's inner product and the cross-product of X and Y, separately written XX,XY,YY. By now , XX ,YY or XY all share the size of 400*1. When I put XX or XY into linSVM as input, it shows badly efficiency and the accuracy of trainset is quite low(about 50%). However, YY as the input shows 100% accuracy of trainset and shows surprising speed. So it really confuses me. Is it possible?

1个回答

hijack00
hijack00   Rxr 2016.09.19 12:48
已采纳

PCA里面涉及奇异值分解SVD,这种运算跟矩阵自身的性质有关系的(比如矩阵病态时可能性能会急剧下降),同样大小的矩阵,如果矩阵自身性质不好,也可能会耗用更多的计算时间。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
matlab-基础 产生一个与已知矩阵同大小的随机数矩阵
慈心积善融学习,技术愿为有情学。善心速造多好事,前人栽树后乘凉。我今于此写经验,愿见文者得启发。 a=[1 2 3;4 5 6] rand(size(a)) 感恩曾经帮助过 心少朴 的人。 matlab优秀,值得学习。基础知识 + 专业知识 + matlab = ? 注:此文是自学笔记所生,质量中下等,故要三思而后行。新手到此,不可照搬,应先研究其理象数,待能
matlab中矩阵与常量比较的返回值
<br />比如一个矩阵是<br />A=[0.6 0.1 0.2 0.3;0.6 0.2 0.8 0.9];<br />那么B=A>0.5的返回值是:<br />B=[1 0 0 0;1 0 1 1];<br />A中每个元素与常量相比较,返回一个和A同样大小的矩阵B。B中每个元素为A中同样位置处的元素与常量比较后的值,大于常量的元素返回1,否则返回0.
3.2矩阵大小及结构的改变
根据运算时不同情况和需要,矩阵大小和结构的改变主要的方式有旋转矩阵、改变矩阵的维度、删除矩阵元素等等,MATLAB中提供了矩阵旋转与矩阵维度改变的函数 矩阵旋转与改变维度的函数 函数名称                 函数功能 fliplr(A)      矩形每一行均进行逆序排序 flipud(A)   矩阵每一列均进行逆序排列 flipdim(A,dim)    生成一
Matlab如何找出两个矩阵中相同的元素
a=[1,2,3,4,5,6,7,8,9]; b=[1,4,6,9,12,14]; c=intersect(a,b) % c就是a、b中相同的元素   matlab里关于集合运算和二进制数的运算的函数 intersect:集合交集 ismember :是否集合中元素 setdiff :集合差集 setxor :集合异或(不在交集中的元素) union :两个集合的并
matlab中去除矩阵中相同的行
背景 最近一直在研究电路故障分析,在电路波形中提取到了一些数据,由于样本数据很多,因此也就有很多重复的,我们需要将这些数据应用到支持向量机进行分类模型的建立,为避免相同的数据在模型的建立中没有起到任何的作用,因此,需要将这些相同的数据进行删除,只保留一个。 转变为数学问题就是:matlab中如何搜索一个矩阵中 值相同的行数并去除。例子如下: A=[1 0 0 0; 1 1
MATLAB运行速度与数组维数的关系
最近看了一些加快matlab运行速度的帖子,但是没有一个特别系统的文章,这里先把自己的实验部分做个简单记录,后面有实验再进行添加 matlab版本:R2014a (8.30 532) 电脑配置: CPU: i5 - 6200U 2.30GHz(4 CPUs)~2.4GHz         内存: 8G 显卡: NVIDIA GeForce 930M 我们知道ma
Matlab中统计矩阵中相同元素的个数的方法
方法一: A = data(:,i); B = unique(A); c = zeros(size(B)); for i=1:length(B)     c(i)=length(find(A==B(i))); end   方法二: 使用函数tabulate(A)     方法三: 使用函数hist(A,unique(A)) FROM:ht
MATLAB求矩阵的规模——size & length
1.size 对于M*N矩阵A,size(A)返回两个值,分别为M和N。 例:对于矩阵A =[1,2;3,4;2,6],size(A)返回3和2,分别是A的行数和列数。 2.length 对于M*N矩阵A,length(A)返回M和N中较大者。故而当A是向量时,length(A)就是A的维数。
Matlab 按列排序 去掉重复元素
1. Matlab中,矩阵按照某一列排序      参考:http://kb.iu.edu/data/afrd.html      函数:sortrows(A,j)    例:A = [1 2 3             3 0 9             6 5 4]        B = sortrows(A,2)        则:        B =
Matlab中统计矩阵中相同元素的个数
寻找矩阵或者向量中不同元素的个数可使用以下方法: 方法一: A = data(:,i); B = unique(A); c = zeros(size(B)); for i=1:length(B)     c(i)=length(find(A==B(i))); end   方法二: 使用函数tabulate(A)     方法三