申请深度学习的开发环境

Supervessel超能云(www.ptopenlab.com)上可以免费申请深度学习的开发环境。用户可以免费注册一个用户帐号,无须任何信用卡信息,就可以申请。

申请了用户帐号后,进入“Supervessel Cloud”申请虚拟机“Apply VM"。如下图:

登陆之后,进入云平台的控制台(dashboard),选择界面顶部的“More services”,出现"Market Image"的选项,如下图:

进入“Market Image"之后,选择“深度学习”类型下的“GPU Accelerated Caffe Deep Learning Development Environment", 如下图:

点击“Details”,即会弹出对话框,确认要启动一个新的带GPU加速的Caffe深度学习开发环境(容器)。大概过1到2分钟,用户的控制台就可以显示这个新的容器(docker)。在最左边的按钮“More actions"下拉,可以选择“Console“,来进入基于网页的容器登陆环境。或用户可以使用VPN来使用别的ssh终端软件(如putty)进行登陆。关于如何安装和配置VPN,详见以下链接:https://services.ptopenlab.com/mediawiki/index.php/VPN%E7%9A%84%E4%BD%BF%E7%94%A8/en

初次登陆该深度学习容器,系统会强制用户更改用户密码(帐号为opuser,密码查看控制台信息)和root的用户密码(密码查看控制台信息)。至此,准备环境就绪。

深度学习模型训练

在这一部分,我们将以CIFAR10为例子,来给大家介绍如何用Caffe进行最简单的深度学习模型训练。CIFAR10和CIFAR100是很有名并被广泛使用的图像数据集。CIFAR10相对比较简单,是由60000张32X32像素的彩色图片组成,分为10类,每类含6000张图片。这10类图片分别是飞机、车、鸟、猫、鹿、狗、青蛙、马、船和卡车。

我们要做的第一步是下载训练的CIFAR10数据集。在容器中,切换到root权限,执行如下命令:

cd /home/opuser/caffe-master-20150813

./data/cifar10/get_cifar10.sh

get_cifar10.sh就是执行数据集下载的脚本,整个数据集大概100多兆。接着执行:

./examples/cifar10/create_cifar10.sh

create_cifar10.sh是对数据集进行预处理,以便能被Caffe直接处理,并计算数据集的均值。

之后,执行如下命令就可以开始进行模型训练了:

./examples/cifar10/train_quick.sh

在train_quick.sh这个脚本中,主要的输入是 examples/cifar10/cifar10_quick_solver.prototxt 这个文件。这是对这个模型的配置文件,内容如下:

# The train/test net protocol buffer definition

net: "examples/cifar10/cifar10_quick_train_test.prototxt"

# test_iter specifies how many forward passes the test should carry out.

# In the case of MNIST, we have test batch size 100 and 100 test iterations,

# covering the full 10,000 testing images.

test_iter: 100

# Carry out testing every 500 training iterations.

test_interval: 500

# The base learning rate, momentum and the weight decay of the network.

base_lr: 0.001

momentum: 0.9

weight_decay: 0.004

# The learning rate policy

lr_policy: "fixed"

# Display every 100 iterations

display: 100

# The maximum number of iterations

max_iter: 4000

# snapshot intermediate results

snapshot: 4000

snapshot_prefix: "examples/cifar10/cifar10_quick"

# solver mode: CPU or GPU

solver_mode: GPU

该文件定义了深度神经网络的文件 cifar10_quick_train_test.prototxt,迭代次数4000,以及使用GPU进行模型训练等重要参数。

在模型训练的过程中,每迭代100次,会打印一次输出结果。直到最后输出:

Snapshotting to binary proto file examples/cifar10/cifar10_quick_iter_4000.caffemodel

Snapshotting solver state to binary proto fileexamples/cifar10/cifar10_quick_iter_4000.solverstate

Iteration 4000, loss = 0.599427

Iteration 4000, Testing net (#0)

Test net output #0: accuracy = 0.7159

Test net output #1: loss = 0.863218 (* 1 = 0.863218 loss)

Optimization Done.

首先,训练后得到的模型存在文件 cifar10_quick_iter_4000.caffemodel 中,该模型文件将用于后面进行测试和分类应用。solverstate文件比起.caffemodel文件多了模型名称、当前迭代次数等。solverstate是用来恢复训练的,防止意外终止而保存的快照(有点像断点续传的感觉)。

在训练过程,Caffe会根据.prototxt文件的定义,随机选取数据集中的一部分数据进行模型精度测试,所以本次训练所得到的模型精度为 0.7159.

至此,我们第一个模型训练就完成了。

利用训练模型进行图片分类

深度学习的目的是要让我们的应用获得认知能力。假设我们要开发一个图片分类应用,我们已经使用Caffe通过前面的步骤训练得到一个懂得10个分类的学习模型。在这部分,我们要做的是如何把这个模型使用起来,为我们的应用服务。

caffe图像分类教程_跟我上手深度学习: 五分钟尝试第一个深度学习(Caffe)训练和图像分类(详细图文步骤)...相关推荐

  1. 【快速上手系列】五分钟即可学会的easyUI的简单使用教程

    [快速上手系列]五分钟即可学会的easyUI的简单使用教程 一个简单方便的前端框架 引入文件 引入两个css样式和三个js <!--引入easyUI的样式 --> <link hre ...

  2. 神舟linux装win7教程,神舟笔记本win10系统改win7系统详细图文步骤

    神舟笔记本win10系统怎么改为win7系统?神舟笔记本性能强劲,操作流畅,是游戏办公的最好选择.最近有位用户购买了神舟笔记本之后,预装的是win10系统,但是他用惯了win7系统,就想将其中的win ...

  3. javplayer 使用教程_每日更新 | 立创EDA画图不求人系列视频教程@第一期目录

    如果觉得文章对你有用,那就转发,让更多人知道吧 教程内容:立创EDA画图不求人系列,是电子芯原创的立创EDA绘图技巧视频教程,每一个技巧只需要不到3分钟的时间就可以完成学习.立创EDA支持window ...

  4. 贪吃蛇python零基础教程_自学python-tkinter项目-贪吃蛇的程序(0基础入门学习)...

    python学习了2个月有点想放弃了(本人英文基本为0,之前也根本没接触过IT行业) 不过贪吃蛇的程序做成,给了继续下去的理由和信心 下面是代码: import tkinter import rand ...

  5. PyTorch深度学习60分钟入门与实战(四)训练分类器

    原文:github link,最新版会首先更新在github上 有误的地方拜托大家指出~ 训练分类器 目前为止,我们以及看到了如何定义网络,计算损失,并更新网络的权重. 现在可能会想, 数据呢? 通常 ...

  6. 快速安装Docker详细图文步骤教程

    文章目录 一.Docker的基本组成 1.Docker是什么? 2.我可以使用Docker做什么? 二.Docker在线安装 1.使用uname命令验证-查看即可 2.如果已经安装过Docker,先卸 ...

  7. 为什么虚拟机上一运行就显示程序停止_五分钟学Java:如何学习Java面试必考的JVM虚拟机...

    原创声明 本文首发于微信公众号[程序员黄小斜] 本文作者:黄小斜 转载请务必在文章开头注明出处和作者. 本文思维导图 为什么要学习JVM虚拟机 最近的你有没有参加Java面试呢?你有没有发现,Java ...

  8. 为什么虚拟机上一运行就显示程序停止_五分钟学Java:如何学习Java面试必考的JVM虚拟机||CSDN博文精选...

    作者:黄小斜 原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者. 本文思维导图 为什么要学习JVM虚拟机 最近的你有没有参加Java面试呢?你有没有发现,Java面试中总是爱考一类问题, ...

  9. F11一键还原精灵使用教程(详细图文步骤)

    品牌机一般都带有一键还原的功能,免除重新安装系统和软件的漫长过程.那么,组装机怎么办,推荐安装F11一键还原精灵,它的功能就是创建一个隐藏分区,装好系统.软件并打好补丁和优化设置后,将系统备份在此隐藏 ...

最新文章

  1. Python学习系列(五)(文件操作及其字典)
  2. python画动态爱心-使用Python画出小人发射爱心的代码
  3. Py之GUI:Python下各种GUI(图形用户界面)简介、使用优缺点对比
  4. [转]Android中dp,px,sp概念梳理以及如何做到屏幕适配
  5. Gitee ssh 公钥配置好后,仍然 permission denied 的排查过程及解决方法
  6. Java面试题15牛客 以下关于Integer与int的区别错误的是
  7. JSON(5)---JSON.stringify()
  8. tushare 安装
  9. 单例模式-1.单利模式的简单实现
  10. jquery基础复习-index(),
  11. vmalloc与mmap
  12. python三对角矩阵_用NumPy实现三对角矩阵算法(TDMA)
  13. php四段拼接ip,合并相同的ip段算法
  14. 企业IP地址怎么划分
  15. matlab has encountered,[万能解决问题]MATLAB has encountered an internal problem and needs to close....
  16. chemdraw怎么连接两个结构_ChemDraw如何连接两个片段?
  17. 手机屏幕取词翻译软件哪个比较好?快看这篇文章,它能告诉你
  18. 世界上最大的开源基金会 Apache 是如何运作的?
  19. 追加贷显示服务器出错,小蜜蜂财务软件常见问题汇总
  20. 【AIX】AIX中级试题

热门文章

  1. linux脚本base64加密当时,【加密算法】Base64
  2. 网关策略跟计算机名有关系吗,交换机网关与与之相连的计算机的网关有没有必然关系...
  3. linux抓包库libpcap,linux下libpcap抓包分析.doc
  4. signature=172bb3bb7ef43cff1707b389c78d27cb,Signatures? of suicide
  5. example 排序_个性化推荐系统源代码之基于 WideDeep模型的在线排序
  6. charles抓包工具_HTTP协议抓包工具:Charles for Mac
  7. 华为p7刷android go,华为首款Android GO手机发布 1G内存也流畅
  8. qtableview与sqlite使用显示科学计算_使用MATLAB Profiler提升程序运行的效率
  9. android切换线程的方法,android 主线程切换方法
  10. A Comprehensive Introduction to Torchtext