Caffe训练时出现Aborted ** using GNU date ** core dumped问题解决记录

来源:互联网 发布:数据管理软件 编辑:程序博客网 时间:2024/05/22 07:55

1. 问题

下面是我在使用Caffe进行训练的时候出现的错误:

*** Aborted at 1510023780 (unix time) try "date -d @1510023780" if you are using GNU date ***PC: @     0x2acc27a60c92 ddot_kernel_8*** SIGILL (@0x2acc27a60c92) received by PID 6739 (TID 0x2acc211c0240) from PID 665193618; stack trace: ***    @     0x2acc250db330 (unknown)    @     0x2acc27a60c92 ddot_kernel_8    @     0x2acc27a60ed0 ddot_k    @     0x2acc248e77b8 caffe::ReductionLayer<>::Forward_cpu()    @           0x464b50 caffe::Layer<>::Forward()    @           0x49c64d caffe::ReductionLayerTest<>::TestForward()    @           0x6fd773 testing::internal::HandleExceptionsInMethodIfSupported<>()    @           0x6f43f7 testing::Test::Run()    @           0x6f449e testing::TestInfo::Run()    @           0x6f45a5 testing::TestCase::Run()    @           0x6f78e8 testing::internal::UnitTestImpl::RunAllTests()    @           0x6f7b77 testing::UnitTest::Run()    @           0x4599d2 main    @     0x2acc2530af45 (unknown)    @           0x460cb9 (unknown)Illegal instruction )make: *** [runtest] Error 132

出问题的电脑上装的Caffe是我从别的电脑上拷贝的附加库,再本地配置编译的。出现了问题重新编译之类的都没有用,网上找了写解决办法,试过了都不能解决问题,后来不想去找具体是那个包除了问题,还是全部重新编译了一下它的依赖项,若是有网友在移植的时候也出现了这样的问题并且解决了,欢迎留言。
我这里也将我找到的解决办法贴出来,各位看官可能会用得上

2解决办法

2.1 解决办法1

这是一个很隐蔽的错误,在github的Caffe issues中可以搜索到很多类似的问题. 发现函数MakeTempDir用于处理路径的字符串,相关的库有boost和protobuf。
ref:http://blog.csdn.net/solomon1558/article/details/52015754

2.2 解決辦法2

发现问题是出现在使用shuffle的地方。问题很清晰了,应该是shuffle使用了时间作为随机种子,但 unix 的时间格式可能没有正确解析。可以注释掉下面这句话

 caffe::rng_t* prefetch_rng =  static_cast<caffe::rng_t*>(prefetch_rng_->generator());

也可以直接使用std::random_shuffle函数,不过需要在编译的时候使用c++11特性。下面是这个函数的一个原型

template <class RandomAccessIterator>  void random_shuffle (RandomAccessIterator first, RandomAccessIterator last);

ref: http://m.blog.csdn.net/u014696921/article/details/52626356

2.3 解决办法3

该网友在训练的配置文件中少加了stepsize:10000。由于未指定stepsize导致计算learning rate时浮点数格式异常。
ref: http://blog.csdn.net/yuanchheneducn/article/details/60144751

2.4 解决办法4

这是在网上找的一个,出错的原因是:train.txt的label编号不对,导致得到的img_train_lmdb格式不对。
ref: http://blog.csdn.net/fengyuejin1/article/details/71076095

阅读全文
0 0