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层出不穷......都是什么 ...
随机推荐
- A&DCTF
ADCTF WRITEUP 方向:Reverse 解题数:2 题目:Reverse_01 解题过程: 用ida打开反汇编查看代码,看main函数发现 关键部分,字符串比较,竟然是直接比较”is_t ...
- linux 输入子系统(4) intput_dev 接口描述
Name struct input_dev - represents an input device Synopsis struct input_dev { const char * name; // ...
- 格式转换至yuv422转 yuv420
//pYUV为422,yuv为420 /*ok! * brief:pyuv is yuv422sp srcIn, and yuv is yuv420p desOut */ int YUV422To4 ...
- 浏览器上的Qt Quick
你想不想在浏览器上运行你的Qt Quick程序呢?在Qt 5.12之前,唯一的方法是使用Qt WebGL Streaming技术把界面镜像到浏览器上.但该方法有不少缺陷,下文会说.前不久随着Qt 5. ...
- luogu3384 【模板】 树链剖分
题目大意 已知一棵包含N个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作:操作1: 格式: 1 x y z 表示将树从x到y结点最短路径上所有节点的值都加上z操作2: 格式: 2 x ...
- Java IO、BIO、NIO、BIO
一.什么是IO/NIO: IO:即BIO(Blocking IO):面向流的.同步阻塞式IO:(JDK1.4之前唯一的选择) NIO:面向缓冲的.同步非阻塞式IO:三大核心部分:Selector.Ch ...
- SpringBoot配置文件详解
自定义属性与加载 com.dongk.selfproperty.title=wangdkcom.dongk.selfproperty.name=10000 然后通过@Value("${属性名 ...
- 织梦DedeCMS信息发布员发布文章默认自动审核更新并生成HTML页面
织梦DedeCMS信息发布员发布文章默认自动审核更新并生成HTML页面 一直以为DEDECMS的信息发布员在后台发布文章后,非要管理员审核才能显示,今天一哥们问我这个问题.问:“能不能直接发布,并自动 ...
- OpenMediaVault Redmine 安装
/******************************************************************** * OpenMediaVault Redmine 安装 * ...
- [Selenium] The most commonly used CSSSelector
CSSSelector Example Description element.element div.dropdown Select all <div> elements whose ...