Centos7+docker离线环境编译caffe (GPU)(极简方法)

本文详细介绍了如何在Centos7的离线环境中,利用Docker和NVIDIA-docker编译CUDA 9.0版本的Caffe。内容包括离线资源准备、环境配置、Docker容器创建、yum源配置、Caffe依赖库配置及编译,并提供了基于mnist数据集的训练示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于公司内网无法连接互联网,因此只能在离线环境下编译caffe(GPU)

公司内网默认安装docker和NVIDIA-docker,如果没有安装的话可以参考这篇文章:

Centos下安装docker及NVIDIA-docker: https://blog.youkuaiyun.com/qq_38636133/article/details/93772623

本文资源:https://pan.baidu.com/s/1werdgQa07L-1JWbl4X6IMw

提取码:0g76

一、前期环境准备:

(以下内容均在本文资源中)

系统环境:Centos7

CUDA&cudnn版本:9.0-cudnn7-devel-centos7(CUDA9.0&cudnn7)

离线yum源:yumcafffe.tar

caffe: https://github.com/BVLC/caffe  caffe-master

步骤:

1. 登陆云平台 or UNIX类系统

*注意!宿主机上的虚拟机是无法调用NVIDIA显卡的,因此在虚拟机中无法配置GPU版本的caffe。

2. 在自己的工作目录中导入镜像

docker load –i 9.0-cudnn7-devel-centos7.tar

3. 之后创建脚本文件,用于创建容器

vi createdocker.sh

4. 在脚本文件中输入内容(按i进入insert,之后编辑)

nvidia-docker run –it –d –e NVIDIA_VISIBLE_DEVICES=1 - - name (容器名称) –v (宿主机路径): (容器路径) -p 30001:8888 –p 40001:9999 nvidia/cuda:9.0-cudnn7-devel-centos7

这里解释一下,宿主机路径:容器路径从根目录写起

30001:8888和40001:9999为容器端口:宿主机端口

cuda:9.0-cudnn7-devel-centos7为压缩包里的cuda-devel文件

5. 之后按esc,再输入:wq保存并退出

6. 之后在脚本文件创建的目录下执行脚本,创建对应容器

sh. createdocker.sh

此时输入docker ps -a查看,可以看到新建的容器

7. 进入刚才创建的容器

docker exec –it (容器name) /bin/bash

8. 在容器内指定目录下解压yumcaffe.tar文件

tar -xvf yumcaffe.tar

9. 删除容器中原有的yum源(离线安装需要自己配置yum源),如果不删除则添加local.repo时会找不到

10. 进入yum源库文件

cd /home
cd /etc/yum.repos.d

11. 在 yum.repos.d文件夹下执行(这一步需要注意!!!不要一不小心改到其他目录误删了文件!)

rm –rf *

12. 之后配置yum本地源

vi local.repo

13. 写入内容(i)

[local]

name=local

baseurl=file:///(yumcaffe解压路径)

enabled=1

gpgchekc=0

14. 退出并保存(esc & :wq)

15. 更新本地源文件

yum clean expire-cache

yum makecache

16. 输入yum list即可看到配置好的本地源

二、caffe依赖库配置

按照caffe官网的步骤来

yum install gcc gcc-c++
yum install protobuf-devel leveldb-devel snappy-devel opencv-devel boost-devel hdf5-devel
yum install gflags-devel glog-devel lmdb-devel
yum install atlas-devel
yum install python-devel
yum install openblas-devel
yum install make

三、编译caffe

修改Makefile.config文件

①将# USE_CUDNN := 1

改为: USE_CUDNN := 1

②将BLAS := atlas

改为: BLAS := open

将# BLAS_INCLUDE := /path/to/your/blas

改为:BLAS_INCLUDE := /opt/OpenBLAS/include

将# BLAS_LIB := /path/to/your/blas

改为:BLAS_LIB := /opt/OpenBLAS/lib

③将两行-gencode arch=compute_20,code=sm_20 \

注释掉或者删除(使用的cuda9.0版本,其他版本根据文档要求注释即可)

之后cd caffe-master

make clean

make all –j8

稍等片刻编译完成

make test

make runtest

四、基于mnist数据集训练examples数据

编译完成后以mnist数据集为例子进行训练

将mnist_test_lmdb文件夹和mnist_train_lmdb文件夹mv至examples/mnist/目录下

在配置好GPU的环境后无需额外更改设置

之后在caffe根目录下执行

time sh examples/mnist/train_lenet.sh

迭代10000次,其他参数均为默认值,最终精度0.99 用时13s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值