相关文章推荐
强悍的创口贴  ·  使用 Java 管理 Blob ...·  2 月前    · 
睿智的牛肉面  ·  python ...·  2 月前    · 
骑白马的香菜  ·  Java ...·  2 月前    · 
想发财的伤痕  ·  商学院 ...·  1 年前    · 

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] &lt;= 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 加速