您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
Keras还是TensorFlow,程序员该如何选择深度学习框架?
模型,功能,神经网络Keras还是TensorFlow,程序员该如何选择深度学习框架?
发布时间:2020-12-06加入收藏来源:互联网点击:
Keras还是TensorFlow,程序员该如何选择深度学习框架?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
如果想尽可能快速并且以少量的代码建立并测试神经网络,keras是最快速的, Sequential API和Model的功能十分强大。并且keras的设计十分用户友好,以数据输入输为例,对比keras简单的操作,tensorflow解码编码的构建过程特别繁杂(尤其对于初学者来说,大量的记忆过程上手非常痛苦)。除此之外,keras将模块化作为设计原则之一,使用者可以各按所需进行组合。如果只是想快速地搭建常见的模型来实现自己的想法,keras可以作为首选。
但是,keras在封装后会变得很不灵活,并且加上它本身速度也比较慢,如果是高度封装,前面提到的缺点会更加明显,除了一些对速度要求很低的工业应用,tensorflow会因为更高速而被选择
如果在验证自己想法的时候,不想用既有的设定而是想要自己定义损失函数、测度、层数等等,相比keras,tensorflow提供了更多个性的空间。此外,对神经网络控制力度的大小会很大程度决定对网络的理解和优化工作,而keras种提供的权限很少,tensorflow相反给了更多操控权,比如对多个变量中的某一变量是否进行训练、对梯度进行操作(以获取训练的进展)等等。
虽然二者都提供深度学习模型通常所需的功能性,但是,如果使用者还追求一些更高阶的功能性的选择,像是进行特殊种类模型的研究,就要求诸tensorflow了。比如,如果想要运算加速,可以使用tensorflow的线程功能,多线程实行同一对话。另外,它还提供调试器的功能,对推断bug和加速运算都有帮助。
回答于 2019-09-11 08:43:50
import tf.keras
回答于 2019-09-11 08:43:50
这个要看个人对框架的需求和项目的具体应用了。
Keras是一个封装很好的高级框架,其中很多过程都封装在了API之内,所以搭建一个模型相对简单,结构相对清晰,比较适合新手入门和进阶。
TensorFlow的好处在于背后有Google提供支持,也就是说,想要使用TPU加速,一定要使用TensorFlow。而且TensorFlow的API封装没有那么宽泛,对于一些具体的调整和设计比较方便,适合对于神经网络具有丰富基础的人去做比较庞大的项目。
回答于 2019-09-11 08:43:50
不知您的问题是什么时候问的,悟空缺失这个功能挺不方便。
随着Keras作者加入Google,现在是Keras已经是TensorFlow的Keras。同时,TensorFlow 2.0首推Keras API。
当然,Keras高层或TensorFlow底层API的使用得看场景。简单搭模型使用Keras快速,需要编写自己的OP时,一般就得使用TensorFlow的API。
回答于 2019-09-11 08:43:50
keras是一个高度封装的,对于科研工作者快速实现或者复现算法很好。
其实tensorflow目前也有高度封装的接口,比如tf.slim.
但是高度封装的API看不到更多参数,所以很多时候可能会造成你复现的模型无法收敛,或者精度和论文不一样。 何况现在tensorflow已经可以直接调用keras.tf.keras.可以完全使用。并且tf2.0.中,keras也享有更多tf的资源,keras搭建的模型,可以调用savemodel来保存。
如果你是程序员,那你肯定需要模型部署,目前工业界云侧大多数还是部署tensorflow保存的模型,或者pytorch模型。
caffe模型。
端侧或者边缘侧,还是部署轻量级模型,更多也是.tflite文件,经过量化部署。用tensorflow是最通用的。具体情况还得看你们公司硬件支持情况。
比如我们公司的芯片目前只支持caffe模型,我也是很无奈,从头了解caffe.
不过好在现在有个开源项目支持各种模型之间的转换。
回答于 2019-09-11 08:43:50
tf已经吃了keras,学什么显而易见了吧?你就是用tf.keras,也是要用tf的
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |