搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > AI量化实验室 > 从tensorflow到tflearn/keras:框架比较

从tensorflow到tflearn/keras:框架比较

AI量化实验室 2017-10-11

这个问题,说实话,纠结、反复很久。唯一的办法就是每个框架都深入使用一下。除了需要较多的时间和精力,当然是有很多好处的。

框架没有好与坏,对与错,存在即合理,只有合适不合适。而合适还是不合适,主要看场景与目的。网上有一个不错的总结,和我这段时间的观察分析暗合:

1,tensorflow是个好框架,无论从功能,扩展性,性能,维护,社区都很好。但有一个问题,就是面向开发的API实在是太繁琐了,对于新人,学习曲线就很陡峭。由于太灵活了,示例程序也是一个人一个写法。好比当年windows程序开发里的Win32 API,功能虽然强大,但随便写一个窗口,就得一堆代码,需要自己处理消息循环,自己绘图等。这里其实大部分是模板代码。当然作为底层框架,无可厚非。

2,tensorlayer,看文档和介绍应该是在美帝的中国留学生创立。这里比作WTL,做了底层模板代码的封装,但依旧很底层,到处可见placeholde和session。

3,tflearn,据说是陌陌工作的一个老外创立。相当于MFC框架吧,话说MFC是当年windows开发最流行的UI框架了吧,一般VC++的人是先了解的MFC,然后很少部分人会需要接触到win32API。

4,而keras,则类比为QT。与系统平台无关了,一开始是theano,后来Tensorflow,然后CNTK。这个层次的封装,自然要碰底层的数据结构是不容易的。尽管keras号称容易扩展,与原生tensorflow相容。但读代码是较需要耐心的,毕竟中间多了好几层。


综上比如,就像当年开发QQ一样,最早我们用的是MFC。后来应该到了WTL的层面,自己开发皮肤引擎。


综合比较而言,如果是较新手,即想快速上手深度学习,又兼顾未来的扩展性,同时跨各种框架不是刚需的话,显然tflearn是合适的。


另外自己的一个观感就是如果要使用tersorlayer,还不如直接使用tensorflow,然后自己封装一些模块,也不是很难,只是时间代价的问题。对tl了解不多,感觉有时候他们写出来比原生的tf还复杂。


如果不是学术研究,而只是工业应用的话,模型基本上是确定的套路。深度学习之于图像识别问题,预处理相当简单,一般就是像素点的矩阵[长,宽,通道],也比较好理解。但对于NLP(自然语言处理)这个领域而言,文本是需要预处理的,这里算不算特征提取,看到过有人混着用,比如用了词的tfidf,不是不可以,但其实就是扔掉了词本身的位置信息,这自然不是深度学习的强项,直接用SVM更合适。


扫描下方二维码,关注:AI量化实验室(ailabx),了解AI量化最前沿技术、资讯。

版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《从tensorflow到tflearn/keras:框架比较》的版权归原作者「AI量化实验室」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注AI量化实验室微信公众号

AI量化实验室微信公众号:ailabx

AI量化实验室

手机扫描上方二维码即可关注AI量化实验室微信公众号

AI量化实验室最新文章

精品公众号随机推荐