图4-19 Keras与TensorFlow的前后端关系图
1.什么是Keras
Keras是一个用Python编写的开源人工神经网络库,可以作为TensorFlow、Microsoft-CNTK和Theano的高阶应用程序接口,进行深度学习模型的设计、调试、评估、应用和可视化。换句话说,Keras是一个高层神经网络API,是以TensorFlow、Theano及CNTK为计算后台的深度学习建模工具,如图4-19所示。
Keras已经成为TensorFlow的官方前端,Keras也优先支持TensorFlow。作为Keras用户,在将来的项目中要使用Tensor-Flow 2.0和tf.keras。
2.Keras的设计原则
Keras之所以好用,是因为从设计之初,它就把用户体验放在首要和中心位置,其设计的指导原则如下:
①用户友好。Keras是为人类而不是为机器设计的API,它把用户体验放在首要和中心位置。Keras遵循减少认知困难的最佳实践:它提供一致且简单的API,将常见用例所需的用户操作数量降至最低,并且在用户错误时提供清晰和可操作的反馈。
②模块化。模型被理解为由独立的、完全可配置的模块构成的序列或图。这些模块可以尽可能少的限制组装在一起(就像搭积木一样)。特别是神经网络层、损失函数、优化器、初始化方法、激活函数、正则化方法,它们都是可以结合起来构建新模型的模块。
③易扩展性。新模块是很容易添加的(作为新的类和函数),现有的模块已经提供了充足的示例。由于能够轻松地创建可以提高表现力的新模块,Keras更加适合高级研究。(www.xing528.com)
④基于Python实现。Keras没有特定格式的单独配置文件。模型定义在Python代码中,这些代码紧凑,易于调试,并且易于扩展。
3.Keras的优缺点
Keras是一个高层神经网络API,支持快速实验,能够把你的想法迅速转换为结果,其优势表现在以下几方面:
①高度封装,简单、易用。Keras优先考虑开发人员的经验,这使Keras易于学习和使用。
②应用广泛。作为TensorFlow的官方前端,已被工业界和学术界广泛采用。
③扩展性好。Keras可以轻松地将模型转化为产品,Keras模型可以在更广泛的平台上轻松部署。
④文档齐全,并且文档内容组织得很好,从简单到复杂,一步步指引。
当然,高度封装是优点也是缺点。既然是“封装”,那么许多内部的底层的东西就不会暴露出来,从另一个角度来看,就是可操控性降低了,因此在灵活性上不如PyTorch。
Keras的另一个缺点是不能有效地用作独立的框架。Keras作为一个前端,需要其他深度学习框架提供后端支撑,如TensorFlow。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。