Caffe实战二(手写体识别例程:CPU、GPU、cuDNN速度对比)
上一篇文章成功在CPU模式下编译了Caffe,接下来需要运行一个例程来直观的了解Caffe的作用。(参考:《深度学习 21天实战Caffe》第6天 运行手写体数字识别例程)
编译步骤:
CPU模式:
1、下载MNIST数据集 sudo ./data/mnist/get_mnist.sh 2、转换格式 sudo ./examples/mnist/create_mnist.sh 3、修改训练超参数文件 sudo vim examples/mnist/lenet_solver.prototxt 修改最后一行为:solver_mode : CPU 4、进行训练 sudo ./build/tools/caffe.bin train --solver=examples/mnist/lenet_solver.prototxt 5、用训练好的模型对数据进行预测 sudo ./build/tools/caffe.bin test \ -model examples/mnist/lenet_train_test.prototxt \ -weights examples/mnist/lenet_iter_10000.caffemodel \ -iterations 100
GPU模式:
1、重新编译Caffe 修改Makefile.config,屏蔽CPU_ONLY,即在CPU_ONLY前加上“#” sudo make -j 2、修改训练超参数文件 sudo vim examples/mnist/lenet_solver.prototxt 修改最后一行为:solver_mode : GPU 3、进行训练 sudo ./build/tools/caffe.bin train --solver=examples/mnist/lenet_solver.prototxt 4、用训练好的模型对数据进行预测,并使用caffe time命令进行计时 sudo ./build/tools/caffe.bin time \ -model examples/mnist/lenet_train_test.prototxt \ -gpu 0
cuDNN模式:
1、重新编译Caffe 修改Makefile.config,去掉USE_CUDNN前的“#”(使用cuDNN加速) sudo make -j 2、进行训练 sudo ./build/tools/caffe.bin train --solver=examples/mnist/lenet_solver.prototxt 3、用训练好的模型对数据进行预测,并使用caffe time命令进行计时 sudo ./build/tools/caffe.bin time \ -model examples/mnist/lenet_train_test.prototxt \ -gpu 0
结果对比:
CPU模式:
CPU_ONLY := 1 solver mode : CPU 测试时间:3633ms
GPU模式:
# CPU_ONLY := 1 solver mode : GPU 测试时间:673.594ms
cuDNN加速:
USE_CUDNN := 1 # CPU_ONLY := 1 solver mode : GPU 测试时间:246.016ms
由此可见,训练时间:CPU > GPU > cuDNN。
版权声明:本文为博主原创文章,未经博主允许不得转载。