利用 TFLearn 快速搭建经典深度学习模型

利用 TFLearn 快速搭建经典深度学习模型

使用 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 源码:h

先看看如何用 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.

【2】 http://tflearn.org/

时间: 2024-10-06 09:16:37

利用 TFLearn 快速搭建经典深度学习模型的相关文章

提升深度学习模型的表现,你需要这20个技巧

提升深度学习模型的表现,你需要这20个技巧 标签: 深度学习 2016-09-24 21:28 6650人阅读 评论(0) 收藏 举报  分类: 深度学习(4)  选自machielearningmastery 机器之心编译 作者:Jason Brownlee 参与:杜夏德.陈晨.吴攀.Terrence.李亚洲 本文原文的作者 Jason Brownlee 是一位职业软件开发者,没有博士学位的他通过「从应用中学习」的方法自学了机器学习,他表示对帮助职业开发者应用机器学习来解决复杂问题很有热情,也

文本情感分类(二):深度学习模型

在<文本情感分类(一):传统模型>一文中,笔者简单介绍了进行文本情感分类的传统思路.传统的思路简单易懂,而且稳定性也比较强,然而存在着两个难以克服的局限性:一.精度问题,传统思路差强人意,当然一般的应用已经足够了,但是要进一步提高精度,却缺乏比较好的方法:二.背景知识问题,传统思路需要事先提取好情感词典,而这一步骤,往往需要人工操作才能保证准确率,换句话说,做这个事情的人,不仅仅要是数据挖掘专家,还需要语言学家,这个背景知识依赖性问题会阻碍着自然语言处理的进步. 庆幸的是,深度学习解决了这个问

深度 | 提升深度学习模型的表现,你需要这20个技巧(附论文)

深度 | 提升深度学习模型的表现,你需要这20个技巧(附论文) 2018-04-15 19:53:45 JF_Ma 阅读数 296更多 分类专栏: 机器学习 深度 | 提升深度学习模型的表现,你需要这20个技巧(附论文) 2016-09-23 机器之心 选自machielearningmastery 机器之心编译 作者:Jason Brownlee 参与:杜夏德.陈晨.吴攀.Terrence.李亚洲 本文原文的作者 Jason Brownlee 是一位职业软件开发者,没有博士学位的他通过「从应用

深度学习模型的构建

构建深度学习模型的基本步骤 需要举例的地方以波士顿房价预测为案例 波士顿房价预测是一个经典的机器学习任务,类似于程序员世界的"Hello World".和大家对房价的普遍认知相同,波士顿地区的房价是由诸多因素影响的.该数据集统计了13种可能影响房价的因素和该类型房屋的均价,期望构建一个基于13个因素进行房价预测的模型. 一.数据处理 ? 数据处理包含五个部分:数据导入.数据形状变换.数据集划分.数据归一化处理和封装load data函数.数据预处理后,才能被模型调用. 1.数据形状变换

深度学习模型超参数搜索实用指南

要知道,与机器学习模型不同,深度学习模型里面充满了各种超参数.而且,并非所有参数变量都能对模型的学习过程产生同样的贡献. 考虑到这种额外的复杂性,在一个多维空间中找到这些参数变量的最佳配置并不是件容易的事情. 每一位科学家和研究人员,都希望在现有的资源条件下(计算.金钱和时间),找到最佳的模型. 通常情况下,研究人员和业余爱好者会在开发的最后阶段尝试一种搜索策略.这可能会有助改进他们辛辛苦训练出来的模型. 此外,在半自动/全自动深度学习过程中,超参数搜索也是的一个非常重要的阶段. 超参数到底是什

构建和优化深度学习模型(神经网络机器识图)

DSL(Deep Learning Service)是基于华为云强大高性能计算提供一站式深度学习平台服务,内置大量优化的网络模型算法,以兼容.便携.高效的品质帮助用户轻松使用深度学习技术,通过灵活调度按需服务化方式提供模型训练.评估与预测. 深度学习训练模型:数据准备-->数据模型训练(优化参数)-->反馈损失值-->更多训练 评估模型:返回结果为预测值与测试数据集标注值的错误率或准确率 深度学习模型的优化方法? 训练次数的调整? 代价函数的调整? 学习率的调整? 训练算法的优化? 神经

一种基于脑电图情感识别的新型深度学习模型

目录 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区(微信号:Brain_Computer).QQ交流群:903290195 机器学习的最新进展使得检测和识别人类情绪的技术也得到了快速的发展.其中一部分机器学习技术中是通过分析脑电图(EEG)信号来工作的,这些信号本质上是对从一个人的头皮上收集的脑电活动的记录. 过去十多年来,大多数基于脑电图的情绪分类方法都采用了传统的机器学习方法,例如支持向量机(SVM)模型,因为这些方法需要的训练样本较少.事实上之所以使用需要训练样本量少的方法是因

在NLP中深度学习模型何时需要树形结构?

前段时间阅读了Jiwei Li等人[1]在EMNLP2015上发表的论文<When Are Tree Structures Necessary for Deep Learning of Representations?>,该文主要对比了基于树形结构的递归神经网络(Recursive neural network)和基于序列结构的循环神经网络(Recurrent neural network),在4类NLP任务上进行实验,来讨论深度学习模型何时需要树形结构.下面我将通过分享这篇论文以及查看的一些

1分钟利用mysqlreplicate快速搭建MySQL主从

利用mysqlreplicate快速搭建MySQL主从环境 简介 mysql-utilities工具集是一个集中了多种工具的合集,可以理解为是DBA的工具箱,本文介绍利用其中的mysqlreplicate工具来快速搭建MySQL主从环境. HE1:192.168.1.248 slave HE3:192.168.1.250 master 实战 Part1:安装mysql-utilities [[email protected] ~]# tar xvf mysql-utilities-1.5.4.t