引言
得益于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实现,非常易于调试和扩展。
领取专属 10元无门槛券
私享最新 技术干货