作者ossianlin (linossian)
看板MATLAB
标题[问题] 关於影像处理使用cov "out of memory"
时间Sat May 30 22:31:43 2015
这个问题困扰了我快三个礼拜...应该更久...
不知道为甚麽都会out of memory 也上网查过解法但都没甚麽解法...
学校实验室电脑是32-bit的 记忆体2GB 目前只剩虚拟记忆体扩充那招没用过
不过目前一直找不到Boot.ini 而且老师也认为不会这麽麻烦才是
实验室学长建议从程式码下手,目前就将前面步骤用了save/load法
不过进行covariance的步骤还是出现这状况...
想不到办法只好来这边寻求答案...
以下先上程式码:
load 'martix_X' %X为一输入影像群之大矩阵,其大小为76800xN N为输入影像张数
a = transpose(X);
cov_x = cov(single(a)); or cov_x = cov(double(a));
得到结果都是out of memory...
不填double/single则error bsxfun
现在卡在这段後面要再做eigen根本不能往下做...
跪求版上前辈指导了@@"
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.127.186.7
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1432996306.A.C81.html
1F:→ jatj: 打whos就可以看变数占的大小 可以估算哪个占太多空间 05/31 01:16
2F:→ celestialgod: 用回圈算covariance上三角部分,用cov可能用到太多 05/31 09:13
3F:→ celestialgod: 记忆体 05/31 09:13
4F:→ celestialgod: 2G的电脑,系统大概用掉一半,matlab最多只有1G可以 05/31 11:22
5F:→ celestialgod: 使用,矩阵一大,真的很容易记忆体不足 05/31 11:22
6F:→ celestialgod: error bsxfun应该是因为取完平均要跟原矩阵做相减 05/31 11:24
7F:→ celestialgod: 时,发现原矩阵不是double.... 才出问题。 05/31 11:24
想问一下怎麽用回圈算上三角部分@@?
Name Size Bytes Class Attributes
X 76800x5 384000 uint8
a 5x76800 384000 uint8
用whos得到的数据如上,memory得到的数据如下
Maximum possible array: 688 MB (7.214e+08 bytes) *
Memory available for all arrays: 1248 MB (1.308e+09 bytes) **
Memory used by MATLAB: 496 MB (5.201e+08 bytes)
Physical Memory (RAM): 2043 MB (2.143e+09 bytes)
另外如果算上三角部分之後求得eigenvalue的部分会受影响吗?
因为现再要用cov去求得eig...
麻烦前辈们指点了@@"
※ 编辑: ossianlin (140.133.62.180), 05/31/2015 14:02:49
8F:→ celestialgod: 没注意到你还有另立一个transpose... 05/31 14:39
9F:→ celestialgod: 这个是主要原因 05/31 14:39
10F:→ celestialgod: 直接cov(double(X'))试试看 05/31 14:41
还是一样out of memory @@"
不过如果取消用trancepose就可以covariance了...
这边有点忘记为什麽老师当初要我做trancepose了
依稀印象是老师说直接cov出来的答案好像是错误的...
想请教一下covariance真正用意为何...?
本身数学不是很好 想了解其原理何在?
※ 编辑: ossianlin (140.133.62.180), 05/31/2015 15:24:54
11F:→ celestialgod: 转置前的COV是5X5...转置後是76000 X 76000 05/31 15:27
12F:→ celestialgod: 记忆体会不够是因为要存76000 x 76000的矩阵 05/31 15:27
13F:→ celestialgod: Requested 76000x76000 (43.0GB) array 05/31 15:28
14F:→ celestialgod: 只是我很好奇,这样的变异数矩阵是有问题的... 05/31 15:29
15F:→ celestialgod: 只有五列...你要估计 76000*38000个参数qq 05/31 15:30
16F:→ celestialgod: 76001*38000 (更正) 05/31 15:32
17F:→ celestialgod: 至於cov的用意,我也不清楚你们的目的无从解释 05/31 15:38