关于caffe-windows中 compute_image_mean.exe出现的问题

来源:互联网 发布:阜宁县网络发言人平台 编辑:程序博客网 时间:2024/06/11 21:25

【原文:http://blog.csdn.net/yeyang911/article/details/46679111】

这两天有兴致装了下caffe,感受下这个框架。

但是在这个过程中遇到很多问题,我把碰到的问题和解决方案写下,便于后人快速上手。



compute_image_mean.exe 编译出来后,执行数据变换时,出现下图的情况。


随后,迅速到网上查找相关信息。

看到了下面这篇博客,关于leveldb 的

http://blog.csdn.net/cywosp/article/details/20746879

里面有段话是这么说的:

在1.15版本中,如果使用NewIterator函数创建了leveldb::Iterator对象而没有delete该对象的话,在程序退出时将会报出如下错误:
    db/version_set.cc:806: leveldb::VersionSet::~VersionSet(): Assertion `dummy_versions_.next_ == &dummy_versions_' failed.
    根据代码分析,这里assert失败的原因主要是为了防止内存泄露。


然后,就打开编译的源码(在/tools/compute_image_mean.cpp里面)

根据博客的提示,我就在创建lterator后进行delete。大概在源代码的第70行左右的位置。

[cpp] view plaincopyprint?
  1.   ++count;  
  2.   if (count % 10000 == 0) {  
  3.     LOG(ERROR) << "Processed " << count << " files.";  
  4.   }  
  5. }  
  6. delete it;  
  7. if (count % 10000 != 0) {  
  8.   LOG(ERROR) << "Processed " << count << " files.";  
  9. }  
  10. for (int i = 0; i < sum_blob.data_size(); ++i) {  
  11.   sum_blob.set_data(i, sum_blob.data(i) / count);  
  12. }  

修改后再编译,然后就可以顺利跑通了。
0 0
原创粉丝点击