【深度学习:21 天实战 Caffe】Docker 镜像更新

百度网盘已弃用。随书资源已经放在码云和 github,方便国内外朋友下载。

码云:https://gitee.com/yongkezhao/PracticeCaffeIn21Days

github:https://github.com/zhaoyongke/Caffe21Days

----------------------------------------------------------

不少读者在准备 Caffe 环境时耗费太多时间,本文希望能大大加速这部分进程。

考虑读者的本地环境各异,很难统一用一套流程,为此制作了标准 Docker 镜像,包含了 Caffe 和必备的依赖包,开箱即用。

Docker 官方 Hub:https://hub.docker.com/r/zhaoyongke/bookenv/tags/

阿里云 Docker Hub :https://dev.aliyun.com/detail.html?spm=5176.1972343.2.2.9Nu3FD&repoId=5237


1. 快速搭建 Day 4 环境:


从官方拉取 docker image
$ docker pull zhaoyongke/bookenv:caffe_cpu_only

如果速度很慢,推荐阿里云 Docker Hub:
$ docker pull registry.cn-hangzhou.aliyuncs.com/master_caffe_in_21days/caffe:cpu_only


创建一个 docker 实例:

$ docker run -ti registry.cn-hangzhou.aliyuncs.com/master_caffe_in_21days/caffe:cpu_only

创建成功后,依次执行如下命令来运行 MNIST 例程。

切到 Caffe 目录。该源码克隆于 master 分支(20161112)。

$ cd root/caffe/
$ ./build/tools/caffe.bin
$ vi examples/mnist/lenet_solver.prototxt
将 solver_mode: GPU 改为 CPU
安装 wget,便于执行获取数据脚本
$ apt-get install wget
获取 MNIST 数据集
$ ./data/mnist/get_mnist.sh
用 MNIST 数据集创建 LMDB 数据库
$ ./examples/mnist/create_mnist.sh
执行训练
$ ./examples/mnist/train_lenet.sh



2. 快速搭建 Day 15 环境:

Docker 官方 Hub:
$ docker pull zhaoyongke/bookenv:caffe_gpu_driver367.57

阿里云 Docker Hub:
$ docker pull registry.cn-hangzhou.aliyuncs.com/master_caffe_in_21days/caffe:gpu_driver367.57



编写 Shell 脚本内容如下,保存为 start_docker_with_gpu_cuda.sh

#!/bin/bash
docker run -ti \
	--device /dev/nvidia0:/dev/nvidia0 \
	--device /dev/nvidiactl:/dev/nvidiactl \
	--device /dev/nvidia-uvm:/dev/nvidia-uvm \
	-v /usr/local/cuda:/usr/local/cuda \
	$1 \
	/bin/bash

创建 GPU Docker 实例:

$ ./start_docker_with_gpu_cuda.sh 6ce

其中 6ce 就是上图对应刚刚 pull 下来的 docker image id 缩写,也可以用 image repo:tag 这种格式:

$ ./start_docker_with_gpu_cuda.sh registry.cn-hangzhou.aliyuncs.com/master_caffe_in_21days/caffe:gpu_driver367.57

看到不如 image id 简洁。


GPU 环境比较特殊,需要做额外的工作才能保证可用。

首先是驱动版本,如果你宿主机的 GPU 驱动版本与 docker 实例中版本不一致,会报错:



解决方法:

将宿主机的驱动安装包(NVIDIA-Linux-x86_64-xxx.xx.run)拷贝到 /usr/local/cuda/ 下面(因为我们做了宿主机和 docker 文件共享,通过该目录可以互相传递文件),然后在 docker 实例中 cd 到 /usr/local/cuda/ 可以看到驱动安装包。

执行如下命令:

$ ./NVIDIA-Linux-x86_64-xxx.xx.run -s -N --no-kernel-module

等待安装成功,再运行 nvidia-smi,一切正常了。


其次是 CUDA 版本。docker 镜像里默认编译好的 Caffe 依赖 CUDA 8.0,如果你宿主机上 CUDA 版本不同,需要重新编译 Caffe。














评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值