caffe训练或者测试报错:
F0324 13:10:43.535276 16290 blob.cpp:33] Check failed: shape[i] <= 2147483647 / count_ (3000 vs. 2485) blob size exceeds INT_MAX
首先找到错误出处:blob.cpp,在caffe目录下的./src/caffe/blob.cpp
注意上述两个框内的代码,这个错误实际上是caffe对数据大小的一个限制,有时候,INT_MAX是在库文件中定义过的,大小为:2147483647,可以根据两个红框内的代码,判断,shape[i]是否超过了
2147483647 / count_
,count_的值会随和
for
语句逐渐增大为
num*channels*height*width
;这里的num是每个批次网络读取的数据量,比如你的训练样本为20w,一次性读入,那么这个num就为20w,如果20w分为10个lmdb文件读入,那么一个批次是读取了2w,注意,这里的num,不是batch_size大小!!!channels是样本的通道,一般rgb图像为3通道;height与width即为样本的高宽。
解决方案:
当我们知道出错的原因后,那么解决办法就有以下几种:
1:调小这四个数,channels一般不会改,可以改变图像的高宽,一般由于需求,可能也不会改,那么最后可以调小每次网络读取数据的大小,将训练数据拆分成更多的批次读入
2:将下边的四行注释掉,重新编译caffe,新手不建议
caffe训练或者测试报错:F0324 13:10:43.535276 16290 blob.cpp:33] Check failed: shape[i] <= 2147483647 / count_ (3000 vs. 2485) blob size exceeds INT_MAX首先找到错误出处:blob.cpp,在caffe目录下的./src/caffe/blob.cpp注...
Blob
对象表示一个不可变、原始数据的类文件对象。它的数据可以按文本或二进制的格式进行读取,也可以转换成 ReadableStream 来用于数据操作。
File接口基于
Blob
,并且也集成了
blob
的功能,将其扩展,支持用户系统上的文件。
其他非
blob
对象和数据构造一个
Blob
let obj = {name:'xiaoming'};
let
blob
= new
Blob
([obj],{type:'image/png'})
Blob
.
size
对象中所包含数据大小(字节)
记得很早以前,我打开斗鱼网站,想看看斗鱼的直播内容的来源URL是什么,但是通过调试台找了半天,只招到了一个
Blob
开头的URL,我复制这个URL在浏览器中打开,结果毛都没看到一个,这不免引起了我对这东西的好奇心。
也许你从没听说过
Blob
,或者听说过没见过更没用过,我相信这篇文章都会让你对
Blob
有一个最基本的理解。
Blob
= Binary Large Object的缩写,直译为二进制大对...
训练样本的图像尺寸太小,在池化层pool5的时候,输入图像的尺寸已经小于kernel核的大小了,经过池化之后,下一步输入就变成了0x0,因此会报错。
解决办法:
在转换图像格式的时候,设置宽度和高度即可。
convert_imageset.exe
--backend=leveldb --re
size
_width=64 --re
size
_heigh
undefined reference to `c10::Error::Error(c10::SourceLocation, std::__cxx11::basic_string
‘ascii‘ codec can‘t encode characters in position 151-155:ordinal not in range(128)
git clone 加速