使用 TensorFlow 一个最大的好处是可以用各种运算符(Ops)灵活构建计算图,同时可以支持自定义运算符(见本公众号早期文章《TensorFlow 增加自定义运算符》)。由于运算符的粒度较小,在构建深度学习模型时,代码写出来比较冗长,比如实现卷积层:5, 9

这种方式在设计较大模型时会比较麻烦,需要程序员徒手完成各个运算符之间的连接,像一些中间变量的维度变换、运算符参数选项、多个子网络连接处极易发生问题,肉眼检查也很难发现代码中潜伏的 bug,会导致运行时出错(运气好),或者运行时不出错但运行结果不可解释(运气不好),消耗大量时间和精力。

有没有更好的实现各种经典模型的方式?

答案是肯定的!

我们今天学习一下在 TensorFlow 之上构建的高层次 API—— TFLearn【2】。

TFLearn 是一个模块化和透明的深度学习库,构建在 TensorFlow 之上。

它为 TensorFlow 提供高层次 API,目的是便于快速搭建试验环境,同时保持对 TensorFlow 的完全透明和兼容性。

TFLearn 的一些特点:

容易使用和易于理解的高层次 API 用于实现深度神经网络,附带教程和例子;

通过高度模块化的内置神经网络层、正则化器、优化器等进行快速原型设计;

对 TensorFlow 完全透明,所有函数都是基于 tensor,可以独立于 TFLearn 使用;

强大的辅助函数,训练任意 TensorFlow 图,支持多输入、多输出和优化器;

简单而美观的图可视化,关于权值、梯度、特征图等细节;

无需人工干预,可使用多 CPU、多 GPU;

高层次 API 目前支持最近大多数深度学习模型,像卷积网络、LSTM、BiRNN、BatchNorm、PReLU、残差网络、生成网络、增强学习…… 将来会一直更新最近的深度学习技术;

心动不如行动,我们马上就体验!在一台已经安装了 TensorFlow 的机器上(安装步骤参考之前文章《TensorFlow 1.0.0rc1 入坑记》《利用 TensorFlow 集装箱快速搭建交互式开发环境》《如何在 Windows 系统玩 TensorFlow》)直接运行以下命令:pip in

检查安装成功:

为了方便运行 TFLearn 附带例程,我们需要克隆 TFLearn 源码:

先看看如何用 TFLearn 实现 AlexNet 用于 Oxford 17 类鲜花数据集分类任务的:

上图为论文【1】 中的 AlexNet 结构。

TFLearn 例程中实现的 AlexNet 和论文【1】中相比做了一些修改:

输入图像尺寸变为 227 x 227;

将 2-tower 架构改为 single-tower;

最后一个分类层的输出类别数从 1000 变为 17;

运行该例程:

该程序会自动下载 Oxford 17 flowers 数据集, 选了几个不同类别图片如下:

运行 AlexNet 模型训练截图如下:

在另一个命令行窗口启动 TensorBoard:

打开浏览器,输入地址:localhost:6006,打开 TensorBoard 页面,查看训练过程的准确率、loss 值变化:

AlexNet 模型可视化(之一)

(之二)

模型权值分布:

模型权值的直方图,可以看出权值训练历史:

通过今天内容,读者可以看出使用 TFLearn 高层次 API 相比直接使用 TensorFlow 实现深度学习模型具有使用更简单、构建更快速、可视化更方便等特点,从此无需手动处理各个运算符之间的连接,解放了生产力,提高了模型设计和优化效率。

作为练习,读者可以进一步学习 TFLearn 实现其他经典深度学习模型如 VGG、Inception、NIN、ResNet 等,对比原始论文学习,相信会有更大的收获。

参考文献

【1】Alex Krizhevsky, Ilya Sutskever & Geoffrey E. Hinton. ImageNet Classification with Deep Convolutional Neural Networks. NIPS, 2012.

tflearn教程_利用 TFLearn 快速搭建经典深度学习模型相关推荐

  1. GitChat · 人工智能 | 如何零基础用 Keras 快速搭建实用深度学习模型

    GitChat 作者:谢梁 原文: 如何零基础用 Keras 快速搭建实用深度学习模型 关注微信公众号:GitChat 技术杂谈 ,一本正经的讲技术 [不要错过文末活动] 前言 在这篇小文章中,我们将 ...

  2. 文本分类模型_文本分类中的经典深度学习模型

    众所周知,文本分类是NLP领域中十分基础的任务,大部分文本分类模型稍加修改就可以应用到其他任务中.下面介绍几个经典的文本分类模型. 图中被引数来源google学术(2019/5/16) 1. text ...

  3. 利用远程云服务器跑深度学习模型

    利用远程云服务器跑深度学习模型主要有三个问题需要解决. 一是深度学习环境的搭建,二是已搭建环境的保存,三是远程数据的传输. 深度学习环境的搭建 以阿里云为例,在购买服务器创建实例时,可以在镜像市场选择 ...

  4. 钉钉一行代码_利用Python快速搭建钉钉和邮件数据推送系统

    前面的文章我们写到了利用Python实现钉钉和邮件的数据推送,在数据处理这一块实现了对mysql和odps的数据获取和处理,可以满足常规业务大部分数据场景需求,在一家初创公司数据基础建设还不完善的时候 ...

  5. 铁威马NAS教程之利用docker快速搭建个人在线书库

    这是一个基于Calibre的简单的图书管理系统,支持在线阅读.主要特点是:美观的界面.支持多用户.支持在线阅读.支持邮件推送.支持OPDS.支持一键安装,网页版初始化配置,轻松启动网站等等. 那么,如 ...

  6. 60分钟入门PyTorch,官方教程手把手教你训练第一个深度学习模型(附链接)

    来源:机器之心 本文约800字,建议阅读5分钟. 本文介绍了官方教程入门PyTorch的技巧训练. 近期的一份调查报告显示:PyTorch 已经力压 TensorFlow 成为各大顶会的主流深度学习框 ...

  7. 60分钟入门PyTorch,官方教程手把手教你训练第一个深度学习模型

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自机器之心. 近期的一份调查报告显示:PyTorch 已经力压 TensorFlow 成为各大顶会的主流深度学习框架.想发论文,不学 PyTor ...

  8. ecology9 后端开发环境搭建_利用Vagrant快速搭建开发环境

    Docker大家应该都了解吧,一个非常方便的技术,可以让我们随时随地部署应用.但是部署应用虽然方便了,开发环境的搭建还是那样的,要自己安装一大堆软件.那么有没有类似的工具可以方便我们呢?这就是本文要的 ...

  9. 2020.2idea怎么创建html模块_利用idea快速搭建一个项目

    一.前提准备:电脑安装好jdk1.8,安装好IDEA 二.步骤 1.点击创建一个新项目 2.选择 Spring initializr选项,这是一个非常方便的生成Springboot的工具,确认信息无误 ...

最新文章

  1. [SLAM] a bite of SLAM
  2. sublime text3注册激活及失效解决办法
  3. Matlab 图像处理相关函数命令
  4. qt udp多线程收发过程_! udp多线程的有关问题
  5. win7下安装Oracle10g解决方案
  6. .net 识别一维码_天若OCR文字识别 v5.0 原创好用的OCR及翻译小工具
  7. Python | 字符串isdecimal(),isdigit(),isnumeric()和Methods之间的区别
  8. 科园贸易:帆软助力其推动数据应用落地,打造自主可控数据平台
  9. Dubbo详细介绍与安装使用过程
  10. 影像能力甩友商一条街 华为P40系列底气在这
  11. [smali] This Handler class should be static or leaks might occur
  12. matlab高等数学实验答案,高等数学实验matlab参考完整答案.doc
  13. 虹软科技Java人脸识别_java人脸识别 虹软ArcFace 2.0,java SDK使用、人脸识别-抽取人脸特征并做比对...
  14. 我是一只 IT小小鸟
  15. 易语言单窗口单ip软件源码_想要挣钱创收 那就用脚本操作手机群控软件啊
  16. pdfobject.js和pdf.js的详解
  17. 硬盘被计算机限制如果解锁,硬盘被锁怎么办
  18. 和小白一起学习V4L2采集视频
  19. 做读书笔记好用的软件分享
  20. [Shiro教程] Shiro 教程基于SSM(SpringMVC + Spring + Mybatis)

热门文章

  1. 18_位运算符(了解)
  2. 老男孩python第14期_python学习之老男孩python全栈第九期_day014知识点总结
  3. si4463突破最大包64字节发送
  4. 我的本次mvp申请资料
  5. Linux环境下的c语言编程
  6. Cesium 获取当前视图的中心经纬度
  7. CSRF(跨站请求伪造)漏洞
  8. bash和vim的使用-1
  9. Arcgis主页面字体太小
  10. TTF字体文件裁剪(支持简体中文,繁体中文TTF字体裁剪)