尽管深度神经网络风靡一时,但是对于刚接触机器学习的开发人员而言,主要框架的复杂性已成为其使用障碍。 对于构建神经网络模型的改进和简化的高级API,已经提出了一些建议,所有这些建议从远处看似相似,但在仔细检查时会显示出差异。
Keras是领先的高级神经网络API之一。 它是用Python编写的,并且支持多个后端神经网络计算引擎。
Keras和TensorFlow
鉴于TensorFlow项目已将Keras用作即将发布的TensorFlow 2.0版本的高级API,因此Keras看起来是一个赢家,即使不一定是赢家。 在本文中,我们将探讨Keras的原理和实现,以期了解为什么它是对底层深度学习API的改进。
即使在TensorFlow 1.12中,官方的TensorFlow入门教程也使用嵌入在TensorFlow中的高级Keras API tf.keras 。 相比之下, TensorFlow Core API需要使用TensorFlow计算图,张量,运算和会话,其中一些在刚开始使用TensorFlow时可能很难理解。 使用低级TensorFlow Core API有一些优势,主要是在调试时使用,但是幸运的是,您可以根据需要混合使用高级和低级TensorFlow API。
Keras原则
Keras的创建是为了用户友好,模块化,易于扩展以及与Python一起使用。 该API是“为人类而不是为机器设计的”,并且“遵循了减少认知负担的最佳实践。”
神经层,成本函数,优化器,初始化方案,激活函数和正则化方案都是独立的模块,您可以将其组合以创建新模型。 新模块很容易添加,就像新的类和功能一样。 模型是用Python代码定义的,而不是单独的模型配置文件。