我一直在寻找关于TensorFlow和Keras的信息。他们说TensorFlow运行在Keras之上,这意味着TensorFlow是Keras的“后端”。(尽管你也可以使用其他如Theano和CNTK)
这里的“后端”一词是否意味着它处理深度学习模型背后的所有数学过程?我是说,TensorFlow是处理复杂任务的,比如处理矩阵(张量),执行所有数学运算的部分?
另一方面,Keras只是我们创建模型所需的,对吗?一旦模型创建,它的“后端”就是TensorFlow,对吗?因为要让模型正常工作(如处理矩阵和执行所有数学运算),它需要一个“后端”,也就是TensorFlow。
这是我根据一些开放论坛和Keras的文档所理解的:
Keras是一个模型级别的库,提供用于开发深度学习模型的高级构建块。它本身不处理低级操作,如张量乘积、卷积等。相反,它依赖于一个专门的、优化良好的张量操作库来执行这些操作,作为Keras的“后端引擎”。
我的理解是否正确?如果您有其他答案,请指教我。
回答:
从TensorFlow的一个更高版本(1.8)以及所有后续和最新版本开始,Keras已被集成到TensorFlow中。
使用Keras的推荐方式是在TensorFlow中使用它,实际上,如果你要导入一个层,你应该像这样做 from tensorflow.keras import X, Y
。
Keras确实是一个支持多个后端框架的高级API,比如Theano(顺便说一下,这个已经过时了)或MXNET等。
由于Keras更易于使用,很多人选择了Keras而不是TensorFlow,后者的学习曲线与Keras相比非常陡峭,因此TensorFlow决定将Keras集成到他们的框架中。
实际上,与此同时,Keras的创建者也加入了Google的开发团队,因此Keras被集成到了TensorFlow中。
如果你刚刚开始学习深度学习,确保你使用的是TensorFlow中的Keras。它更加健壮,错误更少。此外,Keras将进入维护模式(从2.3.X版本开始),不会再发布主要版本,只进行维护。