Error using - Matrix dimensions must agree.
msftgitsklsd opened this issue · 4 comments
msftgitsklsd commented
Error using -
Matrix dimensions must agree.
我有5000+张图片,跑到1982张的时候就报这个错误
willard-yuan commented
你按下面的方式调试一下:
- 首先找到那个第1982的图片,确认一下图片有没有什么异常;
- 在图库所在目录去掉该张图片,然后看看图库中的图是否全部跑过去;
- 或者按下面方式定位到1982张图片那里:
%parfor i = 1:numImg
for i = 1982
oriImg = imread(imgNamList{i, 1});
if size(oriImg, 3) == 3
im_ = single(oriImg) ; % note: 255 range
im_ = imresize(im_, net.meta.normalization.imageSize(1:2)) ;
im_ = im_ - net.meta.normalization.averageImage ;
res = vl_simplenn(net, im_) ;
% viesion: matconvnet-1.0-beta17
featVec = res(20).x;
featVec = featVec(:);
feat = [feat; featVec'];
fprintf('extract %d image\n\n', i);
else
im_ = single(repmat(oriImg,[1 1 3])) ; % note: 255 range
im_ = imresize(im_, net.meta.normalization.imageSize(1:2)) ;
im_ = im_ - net.meta.normalization.averageImage ;
res = vl_simplenn(net, im_) ;
% viesion: matconvnet-1.0-beta17
featVec = res(20).x;
featVec = featVec(:);
feat = [feat; featVec'];
fprintf('extract %d image\n\n', i);
end
end
注意上面把i直接设为了从1982图片开始了,然后断点一步一步调试。
另外我在代码里已经加了对单通道图片的处理的情况的,即:
im_ = single(repmat(oriImg,[1 1 3])) ;
按上面方式调试后如果还有问题可以把那张出现问题的图片发给我。
msftgitsklsd commented
感谢周日早上还来回复,第一次用matlab,很多地方都不懂,请见谅
1.图片看不出有异常
2.去掉图片,替换图片,还是一样的
3.定位到1982这张图片开始也不行
我的环境是win7 64 vs2010 matlab2015a matconvnet-1.0-beta17
图片传不上来,我贴到网盘了,链接:http://pan.baidu.com/s/1nuiPCDj
willard-yuan commented
@sudddenly 我在这边把你这幅图片放进这个database(有9张图片)里,加上你这幅图片,共10幅图片,然后运行,测试通过,没问题。你可以自己按照我这个测试一下,应该是你其他地方的问题。
msftgitsklsd commented