CentOS构建DeepLearning4j 0.9.2遇nd4j-cuda-9.0依赖缺失求解决
解决DeepLearning4j 0.9.2构建中deeplearning4j-cuda模块依赖问题
你的问题核心在于构建脚本默认尝试拉取CUDA 9.0版本的ND4J依赖包,但Sonatype的快照仓库已经不再保留0.9.2-SNAPSHOT版本的nd4j-cuda-9.0:linux-x86_64包(快照包通常不会长期存储,老版本的快照资源会被定期清理)。而你当前系统安装的是CUDA 8.0,完全没必要升级CUDA,反而可以通过以下方案快速解决问题:
方案一:指定CUDA 8.0版本构建(推荐)
既然你两个月前用CUDA 8.0成功构建过,说明0.9.2版本完全兼容CUDA 8.0。你只需要在运行build-dl4j-stack时添加Maven参数,强制指定CUDA版本为8.0即可:
./build-dl4j-stack -Dcuda.version=8.0
这个参数会让构建脚本拉取nd4j-cuda-8.0的依赖包,而非默认的9.0版本,从根源上避免找不到快照包的问题。
方案二:清理本地Maven缓存
如果本地Maven仓库中残留了损坏的CUDA 9.0依赖缓存,也可能触发这个错误。你可以手动清理相关目录后重新构建:
rm -rf ~/.m2/repository/org/nd4j/nd4j-cuda-9.0
之后再运行构建命令,让Maven重新从仓库拉取正确的依赖资源。
方案三:升级CUDA到9.0(不推荐,除非你确实需要CUDA9特性)
如果一定要使用CUDA 9.0,你的NVIDIA驱动384.81刚好满足CUDA 9.0的最低要求(CUDA9.0需要驱动≥384.xx),但需要注意两点:
- 需先卸载当前的CUDA 8.0,再干净安装CUDA 9.0(操作时注意不要损坏现有驱动)
- 即使升级了CUDA,你可能仍然需要自行构建
nd4j-cuda-9.0模块,因为Sonatype快照仓库的0.9.2-SNAPSHOT版本资源大概率已被清理,无法直接拉取
内容的提问来源于stack exchange,提问作者AAZ
相关产品推荐
相关产品推荐

