TensorFlow, Keras, TensorLayer, Tflearn 比较
来源:互联网 发布:高洛峰2014版php视频 编辑:程序博客网 时间:2024/05/01 14:58
TensorFlow 是非常强大的分布式跨平台深度学习框架;
因此,我们有必要比较一下基于 TensorFlow 开发的三个库 :Keras, TensorLayer, Tflearn
Keras:是这三个库中最早发布的,最开始只支持 Theano,16年初开始同时支持 Theano 和 TensorFlow 。它的优点是提供傻瓜式编程风格,一分钟可以上手。
有中英文文档。
缺点是框架封闭太死,难以自定义,比如 Activation 的设置是输入string来实现的,而TensorLayer是直接输入function,这样自定义 function 时非常方便。
model = Sequential()
model.add(Dropout(0.2, input_shape=(784,)))
model.add(Dense(800))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(800))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(10))
model.add(Activation('softmax'))
TensorLayer:是16年中发布的,相对较晚但也较为先进。它的优点是速度最快,速度和完全用 TensorFlow 写的代码一样。
同时提供傻瓜式编程方法,和专业级编程方法。参考:tutorial_mnist_simple.py tutorial_mnist.py
提供很多高级功能,适合分布式和嵌入式应用,如:variable reuse ,same model to npz file,GPU manager 等等。
提供大量官方教程,包含了 TensorFlow 官方所有深度学习教程的模块化实现,集合教学和编程于一体。
有中英文文档。
缺点是发布较晚,16年6月前只限作者的学校内部使用,所以现在才开始积累用户。
network = tl.layers.InputLayer(x, name='input_layer')
network = tl.layers.DropoutLayer(network, keep=0.8, name='drop1')
network = tl.layers.DenseLayer(network, n_units=800,
act = tf.nn.relu, name='relu1')
network = tl.layers.DropoutLayer(network, keep=0.5, name='drop2')
network = tl.layers.DenseLayer(network, n_units=800,
act = tf.nn.relu, name='relu2')
network = tl.layers.DropoutLayer(network, keep=0.5, name='drop3')
network = tl.layers.DenseLayer(network, n_units=10,
act = tl.activation.identity,
name='output_layer')
Tflearn:的作者在陌陌工作,亮点和keras一样,都提供傻瓜式编程方法,但由相比Keras透明,所以运行速度比Keras快。
缺点是不支持 Seq2seq,高级应用没法做。。这个bug比较大,希望尽快修复。
input_layer = tflearn.input_data(shape=[None, 784])
dropout1 = tflearn.dropout(input_layer, 0.8)
dense1 = tflearn.fully_connected(input_layer, 800, activation='relu',
regularizer='L2', weight_decay=0.0)
dropout2 = tflearn.dropout(dense1, 0.5)
dense2 = tflearn.fully_connected(dropout1, 800, activation='relu',
regularizer='L2', weight_decay=0.0)
dropout3 = tflearn.dropout(dense2, 0.5)
softmax = tflearn.fully_connected(dropout3, 10, activation='softmax')
最后列出这三个库,分别用上面同样的多层神经网络训练MNIST时,每个epoch的耗时,可见 TensorLayer 的速度快了不少,比Keras差不多快了一倍,这可能是因为Keras需要同时支持 Theano 和 TensorFlow 导致的。
设置:单个 GTX 980 GPU, CUDA 7.5 , cuDNN 5,batch_size = 500
- TensorFlow, Keras, TensorLayer, Tflearn 比较
- TensorFlow之Keras, TensorLayer, Tflearn库比较【转】
- Keras TFLearn TensorLayer
- Keras TFLearn TensorLayer实例【转】
- 【tensorflow】CycleGAN + anaconda3 + tflearn + keras
- Windows 64位 tensorflow、keras、tensorlayer搭建
- Ubuntu14.04 配置theano、keras、tensorflow、tensorlayer
- Mac CPU版本tensorflow,Theano,tensorlayer,keras搭建
- windows 的GPU版本tensorflow,keras,tensorlayer搭建
- 「Deep Learning」Ubuntu 14.04+Anaconda2+Caffe+OpenCV2+TensorFlow+TensorLayer+Keras+Pytorch
- TensorFlow 和 TensorLayer
- TensorFlow与TensorLayer
- 学习笔记TF054:TFLearn、Keras
- TFLearn Tutorials | TensorFlow入门
- Tensorflow-高级封装tflearn
- tensorflow与tflearn的安装
- Keras + TensorFlow
- Ubuntu下TensorFLow和TensorLayer安装
- Linux 怎样查看声卡是那种接口
- HTTP 协议入门
- 简单分享一个轻量级自动化测试框架目录结构设计
- synchronized的4种用法
- Handler,Looper,Message,MessageQueue的关系
- TensorFlow, Keras, TensorLayer, Tflearn 比较
- Easy 226题 Invert Binary Tree
- FIR滤波器设计
- Linux驱动编程day4--实现硬件控制
- Red Hat 6.7 配置使用centos的yum源
- 【解题报告】Codeforces Round #368 (Div. 2)
- 全球参数APN工具代码集成
- 《我的RobotFramework书》1-6 变量, Variable
- maven安装配置