Caffe实战二(手写体识别例程:CPU、GPU、cuDNN速度对比)
上一篇文章成功在CPU模式下编译了Caffe,接下来需要运行一个例程来直观的了解Caffe的作用。(参考:《深度学习 21天实战Caffe》第6天 运行手写体数字识别例程)
编译步骤:
CPU模式:
、下载MNIST数据集
sudo ./data/mnist/get_mnist.sh
、转换格式
sudo ./examples/mnist/create_mnist.sh
、修改训练超参数文件
sudo vim examples/mnist/lenet_solver.prototxt
修改最后一行为:solver_mode : CPU
、进行训练
sudo ./build/tools/caffe.bin train --solver=examples/mnist/lenet_solver.prototxt
、用训练好的模型对数据进行预测
sudo ./build/tools/caffe.bin test \
-model examples/mnist/lenet_train_test.prototxt \
-weights examples/mnist/lenet_iter_10000.caffemodel \
-iterations
GPU模式:
、重新编译Caffe
修改Makefile.config,屏蔽CPU_ONLY,即在CPU_ONLY前加上“#”
sudo make -j
、修改训练超参数文件
sudo vim examples/mnist/lenet_solver.prototxt
修改最后一行为:solver_mode : GPU
、进行训练
sudo ./build/tools/caffe.bin train --solver=examples/mnist/lenet_solver.prototxt
、用训练好的模型对数据进行预测,并使用caffe time命令进行计时
sudo ./build/tools/caffe.bin time \
-model examples/mnist/lenet_train_test.prototxt \
-gpu
cuDNN模式:
、重新编译Caffe
修改Makefile.config,去掉USE_CUDNN前的“#”(使用cuDNN加速)
sudo make -j
、进行训练
sudo ./build/tools/caffe.bin train --solver=examples/mnist/lenet_solver.prototxt
、用训练好的模型对数据进行预测,并使用caffe time命令进行计时
sudo ./build/tools/caffe.bin time \
-model examples/mnist/lenet_train_test.prototxt \
-gpu
结果对比:
CPU模式:
CPU_ONLY :=
solver mode : CPU
测试时间:3633ms
GPU模式:
# CPU_ONLY :=
solver mode : GPU
测试时间:.594ms
cuDNN加速:
USE_CUDNN :=
# CPU_ONLY :=
solver mode : GPU
测试时间:.016ms
由此可见,训练时间:CPU > GPU > cuDNN。
Caffe实战二(手写体识别例程:CPU、GPU、cuDNN速度对比)的更多相关文章
- caffe-windows之手写体数字识别例程mnist
caffe-windows之手写体数字识别例程mnist 一.训练测试网络模型 1.准备数据 Caffe不是直接处理原始数据的,而是由预处理程序将原始数据变换存储为LMDB格式,这种方式可以保持较高的 ...
- AI应用开发实战 - 手写识别应用入门
AI应用开发实战 - 手写识别应用入门 手写体识别的应用已经非常流行了,如输入法,图片中的文字识别等.但对于大多数开发人员来说,如何实现这样的一个应用,还是会感觉无从下手.本文从简单的MNIST训练出 ...
- MXNET手写体识别的例子
安装完MXNet之后,运行了官网的手写体识别的例子,这个相当于深度学习的Hello world了吧.. http://mxnet.io/tutorials/python/mnist.html 运行的过 ...
- R︱Softmax Regression建模 (MNIST 手写体识别和文档多分类应用)
本文转载自经管之家论坛, R语言中的Softmax Regression建模 (MNIST 手写体识别和文档多分类应用) R中的softmaxreg包,发自2016-09-09,链接:https:// ...
- 舌尖上的硬件:CPU/GPU芯片制造解析(高清)(组图)
一沙一世界,一树一菩提,我们这个世界的深邃全部蕴藏于一个个普通的平凡当中.小小的厨房所容纳的不仅仅是人们对味道的情感,更有推动整个世界前进的动力.要想理解我们的世界,有的时候只需要细细品味一下我们所喜 ...
- 小米笔记本pro CPU GPU 做科学计算的算力对比
小米笔记本pro:15.6寸,i7-8850,16G,256G,GPU:MX150 测试对象Caffe,MNIST训练 使用纯CPU训练: 1.耗时:11分58秒 2.功耗:35W 使用GPU训练: ...
- kubernetes实战(二十八):Kubernetes一键式资源管理平台Ratel安装及使用
1. Ratel是什么? Ratel是一个Kubernetes资源平台,基于管理Kubernetes的资源开发,可以管理Kubernetes的Deployment.DaemonSet.Stateful ...
- 入门项目数字手写体识别:使用Keras完成CNN模型搭建(重要)
摘要: 本文是通过Keras实现深度学习入门项目——数字手写体识别,整个流程介绍比较详细,适合初学者上手实践. 对于图像分类任务而言,卷积神经网络(CNN)是目前最优的网络结构,没有之一.在面部识别. ...
- CPU/GPU/TPU/NPU...XPU都是什么意思?
CPU/GPU/TPU/NPU...XPU都是什么意思? 现在这年代,技术日新月异,物联网.人工智能.深度学习等概念遍地开花,各类芯片名词GPU, TPU, NPU,DPU层出不穷......都是什么 ...
随机推荐
- PandoraBox 支持3G无线上网卡(联通卡3G卡)(一)
一:笔者采用的是系统是OpenWrt之PandoraBox,内核版本3.3.8:硬件设备是MTK的7620开发板. 其中怎么搭建openwrt开发环境在此不用多说,因为既然想实现3G无线上网卡拨号上网 ...
- MVC Controller构造器注入
UnityDependencyResolver 的标准写法 public class UnityDependencyResolver : IDependencyResolver { priva ...
- http权威指南(一)-Http概述
Http概述 在Web中,不管是浏览器还是server都是通过Http相互通信的.那么Http是怎样工作的呢? 首先,client向server发送Http请求,server会在Http响应中回送所请 ...
- MapReduce算法形式二:去重(HashSet)
案例二:去重(shuffle/HashSet等方法)shuffle主要针对的是key去重HashSet主要针对values去重
- 自己写的canvas 手写画板
<!DOCTYPE html> <html> <head> <title>canvas</title> <meta charset=& ...
- ios很好的开源库
Tim9Liu9/TimLiu-iOS 自己总结的iOS.mac开源项目及库,持续更新.. 目录 UI 下拉刷新 模糊效果 AutoLayout 富文本 图表 表相关与Tabbar 隐藏与显示 HUD ...
- Vue : props 使用细节(父组件传递数据给子组件)
props使用细节 在Vue.js中我们可以使用 props 实现父组件传递数据给子组件,下面我们总结一下props的使用细节 1.基础类型检查 2.必填数据 3.默认值 4.自定义验证函数 其中每一 ...
- fuse的编译安装(Centos7-minimal)
打算寒假在家跟着THU的一个分布式系统的课程:http://thu-cmu.cs.tsinghua.edu.cn/curriculum/dscourse/schedule.htm 第0个lab就是要在 ...
- codeforces 691A A. Fashion in Berland(水题)
题目链接: A. Fashion in Berland 题意: 思路: AC代码: //#include <bits/stdc++.h> #include <iostream> ...
- 【NOIP 2003】 加分二叉树
[题目链接] 点击打开链接 [算法] 树形DP即可 [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 50 in ...