Python深度学习之TensorFlow的高级框架

引言

得益于TensorFlow社区的繁荣,诞生出许多高质量的原框架,如Keras、TFLearn、TensorLayer等。使用元框架能够大大减少编写TensorFlow代码的工作量,方便开发者快速搭建网络模型,并且使代码简单,可读性强。

TFLearn

TFLearn是一个建立在TensorFlow顶部的模块化的深度学习框架,它为TensorFlow提供更加高级的API,以便于快速实验,同时保持完全透明和兼容。

加载数据

这里我们使用的是牛津大学的鲜花数据集(Flower DataSet)。这个数据集提供了17个类别的鲜花数据,每个类别80张图片,并且图片有大量的姿态和光的变化。

注意,在代码的开始需要导入用到的与卷积、池化、规范化相关的类,方法如下:

构建网络模型

构建AlexNet网络模型时,直接使用TFLearn中的卷积、池化、规范化、全连接、dropout函数来构建即可。方法如下:

训练模型

构建完模型之后,就可以训练模型了。这里我们加了一步,就是假设有训练好或训练到一半的AlexNet模型的检查点文件,直接载入,方法如下:

可见,代码十分简单,这就是使用第三方库的优点。

Keras

Keras是一个高级的Python神经网络框架。Keras已经被添加到TensorFlow中,成为其默认的框架,为TensorFlow提供更加高级的API。

如果大家在学习中不想了解TensorFlow的细节,只需要模块化,那么Keras是一个不错的选择。如果将TensorFlow比喻为编程界的C++和Java,那么Keras就可以认为是Python。它作为TensorFlow的高级封装,可以与TensorFlow联合使用,用它快速搭建原型。

另外,Keras 兼容两种后端,即Theano和TensorFlow,并且其接口形式和Torch有几分相似。掌握Keras可以大幅度提高我们的开发效率和对网络结果的理解。

Keras的优点

Keras是高度封装的,非常适合新手使用,代码更新速度非常快,示例代码也比较多,文档和讨论区也是比较完善的。最重要的是,Keras是TensorFlow官方支持的。当机器上有可用的GPU时,代码会自动调用GPU进行并行计算。

Keras的优点具体如下:

1.模块化:模型的各个部分,如神经层、成本函数、优化器、初始化、激活函数、规范化都是独立的模块,可以组合在一起创建模型。

2.极简主义:每个模块都保持简短和简单。

3.易扩展性:很容易添加新模块,因此Keras适用于做进一步的高级研究。

4.使用Python语言:模型用Python实现,非常易于调试和扩展。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190510A0BGKI00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券