Caffe编译在执行 make runtest时可能会出现类似以下问题,
[ RUN ] AdamSolverTest/1.TestLeastSquaresUpdateWithEverythingAccumShare
unknown file: Failure
C++ exception with description "locale::facet::_S_create_c_locale name not valid" thrown in the test body.
[ FAILED ] AdamSolverTest/1.TestLeastSquaresUpdateWithEverythingAccumShare, where TypeParam = caffe::CPUDevice<double> (0 ms)
最后执行完成后,发现有大量case没有执行成功,如下,
[----------] Global test environment tear-down
[==========] 2123 tests from 281 test cases ran. (418426 ms total)
[ PASSED ] 1774 tests.
[ FAILED ] 349 tests, listed below:
[ FAILED ] DBTest/0.TestSeekToFirst, where TypeParam = caffe::TypeLevelDB
[ FAILED ] DBTest/0.TestWrite, where TypeParam = caffe::TypeLevelDB
[ FAILED ] DBTest/0.TestGetDB, where TypeParam = caffe::TypeLevelDB
[ FAILED ] DBTest/0.TestKeyValue, where TypeParam = caffe::TypeLevelDB
[ FAILED ] DBTest/0.TestNext, where TypeParam = caffe::TypeLevelDB
[ FAILED ] DBTest/1.TestSeekToFirst, where TypeParam = caffe::TypeLMDB
[ FAILED ]
注意问题描述"locale::facet::_S_create_c_locale name not valid",是因为locale字符集配置不对导致,可以通过以下命令去除本地配置
export LC_ALL="C"
这里的本地配置主要是指通过 unix/linux 内核的本地系统登录到服务器系统时,本地系统的 locale 配置会传输到服务器,例如笔者使用 mac系统(英文版)登录则会出现如上错误,但在window系统使用putty等工具登录则没有如上错误。