Mac升级为Sierra后安装caffe的问题
2017-05-01 18:01
330 查看
三年前的Mac到手后一直懒得做更新,主要是因为系统升级后一些有依赖的软件都需要更新,有时还挺容易出问题。为了安全稳定起见,OSX 10.9系统就被我用了三年。但是,这么久不更新实在跟不上潮流了,最近想安装TensorFlow,结果我这么旧的系统被它鄙视并且拒绝了,只好趁着假期把系统更新一下。结果一更新,原来的caffe就用不了,编译过程出现了些问题,本博文记录了这些问题和对应的解决方案。
更新后,系统及相关软件的版本为:
OSX 10.12.4 (Sierra)
Xcode 8.3.2
Cuda 8.0.61
cuDNN 5.0
Matlab2016b
caffe具体的安装过程见《深度学习框架Caffe在Mac上的安装和测试》,这里使用的是基于Anaconda的安装。Xcode和Cuda都是最新的,但是编译caffe的过程中发现cuda 8.0不支持Xcode 8.3,报错为:
通过搜索发现,cuda 8.0是支持Xcode 8.2的,于是将Xcode降为8.2版本。解决步骤为:
1, 登录apple开发者网站:https://developer.apple.com/downloads/
2, 下载命令行工具: Command Line Tools (macOS 10.12) for Xcode 8.2
3, 安装Command Line Tools
4, 将Xcode改为命令行工具对于的8.2版本,运行
5, 查看clang的版本, 为8.0.0
于是使用make重新编译caffe即可。
运行 make, make test都没有问题,但是到了make runtest这一步,又出现以下问题:
这个问题的原因是caffe没有成功连接到Anaconda安装的libhdf5_hl.10.dylib。解决办法如下:
1, 用otool查看caffe的连接库。
可以看到caffe连接到了@rpath/libhdf5_hl.10.dylib 而不是Anaconda中的hdf5。
2, 使用install_name_tool -change 重新设置hdf5的连接
3, 对libcaffe.so和test_all.testbin做同样的修改
再次运行make runtest就能通过了。
之后依次运行make pycaffe和make matcaffe,在make matcaffe完成后在matlab中调用caffe时出现了和上面类似的错误,说caffe_mexmaci64找不到@rpath/./libhdf5_hl.10.dylib,解决办法如下:
在caffe安装的更目录下,运行:
问题得到顺利解决。于是可以在新系统上一边玩caffe一边玩TensorFlow了。
更新后,系统及相关软件的版本为:
OSX 10.12.4 (Sierra)
Xcode 8.3.2
Cuda 8.0.61
cuDNN 5.0
Matlab2016b
caffe具体的安装过程见《深度学习框架Caffe在Mac上的安装和测试》,这里使用的是基于Anaconda的安装。Xcode和Cuda都是最新的,但是编译caffe的过程中发现cuda 8.0不支持Xcode 8.3,报错为:
nvcc fatal : The version ('80300') of the host compiler ('Apple clang') is not supported
通过搜索发现,cuda 8.0是支持Xcode 8.2的,于是将Xcode降为8.2版本。解决步骤为:
1, 登录apple开发者网站:https://developer.apple.com/downloads/
2, 下载命令行工具: Command Line Tools (macOS 10.12) for Xcode 8.2
3, 安装Command Line Tools
4, 将Xcode改为命令行工具对于的8.2版本,运行
sudo xcode-select --switch /Library/Developer/CommandLineTools
5, 查看clang的版本, 为8.0.0
$ clang --version Apple LLVM version 8.0.0 (clang-800.0.42.1) Target: x86_64-apple-darwin16.5.0 Thread model: posix InstalledDir: /Library/Developer/CommandLineTools/usr/bin
于是使用make重新编译caffe即可。
运行 make, make test都没有问题,但是到了make runtest这一步,又出现以下问题:
$ make runtest .build_release/tools/caffe dyld: Library not loaded: @rpath/./libhdf5_hl.10.dylib Referenced from:.build_release/tools/caffe Reason: image not found
这个问题的原因是caffe没有成功连接到Anaconda安装的libhdf5_hl.10.dylib。解决办法如下:
1, 用otool查看caffe的连接库。
$ cd build/tools $ otool -L caffe | grep rpath @rpath/libcaffe.so.1.0.0-rc3 (compatibility version 0.0.0, current version 0.0.0) @rpath/libcudart.8.0.dylib (compatibility version 0.0.0, current version 8.0.61) @rpath/libcublas.8.0.dylib (compatibility version 0.0.0, current version 8.0.61) @rpath/libcurand.8.0.dylib (compatibility version 0.0.0, current version 8.0.61) @rpath/libhdf5_hl.10.dylib (compatibility version 12.0.0, current version 12.0.0) @rpath/libhdf5.10.dylib (compatibility version 13.0.0, current version 13.0.0) @rpath/libcudnn.5.dylib (compatibility version 0.0.0, current version 5.0.5) @rpath/libpython2.7.dylib (compatibility version 2.7.0, current version 2.7.0)
可以看到caffe连接到了@rpath/libhdf5_hl.10.dylib 而不是Anaconda中的hdf5。
2, 使用install_name_tool -change 重新设置hdf5的连接
$ install_name_tool -change "@rpath/libhdf5_hl.10.dylib" "/Users/taigw/anaconda/lib/libhdf5_hl.10.dylib" caffe install_name_tool -change "@rpath/libhdf5.10.dylib" "/Users/taigw/anaconda/lib/libhdf5.10.dylib" caffe
3, 对libcaffe.so和test_all.testbin做同样的修改
$ cd ../lib $ otool -L libcaffe.so | grep rpath $ install_name_tool -change "@rpath/libhdf5.10.dylib" "/Users/taigw/anaconda/lib/libhdf5.10.dylib" libcaffe.so $ install_name_tool -change "@rpath/libhdf5_hl.10.dylib" "/Users/taigw/anaconda/lib/libhdf5_hl.10.dylib" libcaffe.so $ cd ../test $ otool -L test_all.testbin | grep rpath $ install_name_tool -change "@rpath/libhdf5_hl.10.dylib" "/Users/taigw/anaconda/lib/libhdf5_hl.10.dylib" test_all.testbin $ install_name_tool -change "@rpath/libhdf5.10.dylib" "/Users/taigw/anaconda/lib/libhdf5.10.dylib" test_all.testbin
再次运行make runtest就能通过了。
之后依次运行make pycaffe和make matcaffe,在make matcaffe完成后在matlab中调用caffe时出现了和上面类似的错误,说caffe_mexmaci64找不到@rpath/./libhdf5_hl.10.dylib,解决办法如下:
在caffe安装的更目录下,运行:
$ cd matlab/+caffe/private/ $ install_name_tool -change "@rpath/libhdf5_hl.10.dylib" "/Users/taigw/anaconda/lib/libhdf5_hl.10.dylib" caffe_.mexmaci64 $ install_name_tool -change "@rpath/libhdf5.10.dylib" "/Users/taigw/anaconda/lib/libhdf5.10.dylib" caffe_.mexmaci64
问题得到顺利解决。于是可以在新系统上一边玩caffe一边玩TensorFlow了。
相关文章推荐
- Mac升级到macOS Sierra 10.12后SVN管理软件Conerstone破解版安装后提示“已损坏”问题
- Mac升级到macOS Sierra 10.12后SVN管理软件Conerstone破解版安装后提示“已损坏”问题
- Mac升级到macOS Sierra 10.12后SVN管理软件Conerstone破解版安装后提示“已损坏”问题
- Mac升级到macOS Sierra 10.12后SVN管理软件Conerstone破解版安装后提示“已损坏”问题
- Mac升级到macOS Sierra 10.12后SVN管理软件Conerstone破解版安装后提示“已损坏”问题
- Mac系统升级到10.9(mavericks)时安装php扩展问题解决
- 升级Mac Sierra 后 expect 异常问题
- Mac升级到macOS Sierra 10.12后SVN管理软件Conerstone破解版安装后提示“已损坏”
- Mac系统升级到10.9(mavericks)时安装php扩展问题解决
- 升级mac中的系统之后,给PHP安装扩展常出现问题
- mac升级macOS Sierra后ssh下载问题解决
- Mac 升级Sierra 软件安装方法
- iOS新工程 升级最新Mac系统 安装cocoapods问题
- mac 升级到mavericks 安装php扩展现问题
- Mac Snow Leopard 从10.6.6升级到10.6.8 及相关问题修复
- Domino Designer 试图升级多用户安装问题
- 安装东皇mac 问题集
- [linux] 关于 YUM 的升级安装问题
- InstallShield升级安装的问题
- Vmware vSphere5.0安装升级常见问题