如何比较Keras, TensorLayer, TFLearn ?——如果只是想玩玩深度学习,想快速上手 -- Keras 如果工作中需要解决内部问题,想快速见效果 -- TFLearn 或者 Tensorlayer 如果正式发布的产品和业务,自己设计网络模型,需要持续开发和维护 -- Tensorlayer
2017-11-27 13:02
1436 查看
转自:https://www.zhihu.com/question/50030898/answer/235137938
这就给了做高层抽象API封装的生存空间,Keras Tensorlayer TFLearn 是目前比较成熟的几个库。
做个比喻,Tensorflow就像当年的 Win32 API,功能强大但是难以使用,随便做点小事情就要写很多代码,我清楚记得我写个显示空白窗口的程序就要40来行。
Tensorlayer比较像 WTL,把一些繁琐的代码封装成更容易使用的接口,但是仍然保留了对底层API调用的能力,抽象的层次不高,仍然可以看到底层的 数据结构和网络结构。比如 可以看到 Session和Placeholder等。
TFLearn比较像 MFC,抽象的层次更高,创造了自己的一套子语法,代码可读性更好,屏蔽了底层难以理解的东西。
Keras比较像 Qt,很高的抽象层次,甚至跨越了多个深度学习框架,完全看不到底层的细节了,甚至某些情况需要触碰底层的对象和数据反而非常麻烦。
不同的抽象层次带来不同的学习难度,适应不同的需求。
基本建议:
如果只是想玩玩深度学习,想快速上手 -- Keras
如果工作中需要解决内部问题,想快速见效果 -- TFLearn 或者 Tensorlayer
如果正式发布的产品和业务,自己设计网络模型,需要持续开发和维护 -- Tensorlayer
以上只是个人建议,具体情况因人而异。
如何比较Keras, TensorLayer, TFLearn ?
这三个库主要比的是API设计水平,不得不说原始的 Tensorflow API的确反人类,我承认它的完善、表达能力强,性能好,但是接口设计对人类非常不友好。这就给了做高层抽象API封装的生存空间,Keras Tensorlayer TFLearn 是目前比较成熟的几个库。
做个比喻,Tensorflow就像当年的 Win32 API,功能强大但是难以使用,随便做点小事情就要写很多代码,我清楚记得我写个显示空白窗口的程序就要40来行。
Tensorlayer比较像 WTL,把一些繁琐的代码封装成更容易使用的接口,但是仍然保留了对底层API调用的能力,抽象的层次不高,仍然可以看到底层的 数据结构和网络结构。比如 可以看到 Session和Placeholder等。
TFLearn比较像 MFC,抽象的层次更高,创造了自己的一套子语法,代码可读性更好,屏蔽了底层难以理解的东西。
Keras比较像 Qt,很高的抽象层次,甚至跨越了多个深度学习框架,完全看不到底层的细节了,甚至某些情况需要触碰底层的对象和数据反而非常麻烦。
不同的抽象层次带来不同的学习难度,适应不同的需求。
基本建议:
如果只是想玩玩深度学习,想快速上手 -- Keras
如果工作中需要解决内部问题,想快速见效果 -- TFLearn 或者 Tensorlayer
如果正式发布的产品和业务,自己设计网络模型,需要持续开发和维护 -- Tensorlayer
以上只是个人建议,具体情况因人而异。
相关文章推荐
- Keras TensorFlow教程:如何从零开发一个复杂深度学习模型
- Keras TensorFlow教程:如何从零开发一个复杂深度学习模型
- Keras TensorFlow教程:如何从零开发一个复杂深度学习模型
- 【深度学习】笔记7: CNN训练Cifar-10技巧 ---如何进行实验,如何进行构建自己的网络模型,提高精度
- 上手Android源码探索AOSP的奥秘过程笔记(不是教程,只是自己遇到的问题或者心得的笔记,持续更新)
- 三层终于解决事务问题了。如果delphi由于种种原因在没落,不知道以后需要快速开发用什么工具最妥当了
- Adobe发布网络开发工具Shadow 解决跨平台问题需要启用javascri
- 【Unity3d】如何解决在开发中添加了新场景后,需要手工维护BuildSettings中场景列表的问题
- 摘要 MAC,PIN,磁道密钥 在平时的工作中,很少接触安全这块内容,最近需要自己独立完成安全这块内容,在开发中遇到的问题会在下面的理解中得到相应的解决。 在交易平台中,基于安全考
- 【神经网络与深度学习】caffe静态链接库“Unknown layer type: Convolution (known types: )”和“ 磁盘空间不足”问题的解决办法
- 近期的一些学习--当一个程序开发到了中期,突然出现性能问题,如何解决
- 架构师:以解决自己工作中的问题为圆心学习;技术信任
- EBS 开发 如何解决内部开发环境上Subinventory Form上的问题
- 【iOS开发-25】UIDevice查看系统信息,从一个问题开始如何快速找到自己想要的属性和方法并看懂它
- 敏捷开发产品管理系列之八:基于业务设计技术架构(兼谈12306性能问题)
- 在今天,利用 HTML5 开发和发布大型跨平台网游,可行性如何?要解决哪些问题?
- 敏捷开发产品管理系列之八:基于业务设计技术架构(兼谈12306性能问题)
- 【实践】从eclipse集成快速上手到IDEA14集成开发环境最可能出现的问题与解决办法
- 如果每一个聪明的工程 师都打算在自己四年职业生涯后停止做开发而仅做管理工作,我们是无法建立像SQL Server这样的产品的
- 敏捷开发产品管理系列之八:基于业务设计技术架构(兼谈12306性能问题)