从tensorflow到tflearn/keras:框架比较
Posted AI量化实验室
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从tensorflow到tflearn/keras:框架比较相关的知识,希望对你有一定的参考价值。
这个问题,说实话,纠结、反复很久。唯一的办法就是每个框架都深入使用一下。除了需要较多的时间和精力,当然是有很多好处的。
框架没有好与坏,对与错,存在即合理,只有合适不合适。而合适还是不合适,主要看场景与目的。网上有一个不错的总结,和我这段时间的观察分析暗合:
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:框架比较的主要内容,如果未能解决你的问题,请参考以下文章
sh 从tensorflow冷冻模型到tensorflow lite
TensorFlow 从入门到精通:tensorflow.nn 详解
如何从 TensorFlow 1.x 迁移到 TensorFlow 2.x