Keras和Tensorflow入门
TensorFlow 简介
TensorFlow 是一个基于 Python 的免费开源机器学习平台,主要由谷歌开发。与 NumPy 类似, TensorFlow 的主要目的是让工程师和研究人员能够在数值张量上操作数学表达式。但 TensorFlow 的能力远远超过 NumPy,主要表现在以下几方面:
- TensorFlow 可以自动计算任意可微表达式的梯度,这使其非常适合 做机器学习。
- TensorFlow 不仅可以在 CPU 上运行,还可以在 GPU、TPU 等高度并行的硬件加速器上 运行。
- TensorFlow 定义的计算,很容易在多台机器上分布式进行。
- TensorFlow 程序可以导出到其他运行时环境,比如 C++、JavaScript(用于基于浏览器的应用程序)、 TensorFlow Lite(用于移动设备或嵌入式设备上运行的应用程序)等。这使得TensorFlow 应用程序很容易部署到实际环境中。
TensorFlow不仅仅是一个库。它其实是一个平台,拥有庞大的组件生态系统,其中一些由谷歌开发,另一些由第三方开发。这些组件包括用于强化学习研究的 TF-Agents,用于工业级机器学习工作流程管理的TFX,用于生产部署的TensorFlow Serving,以及包含许多预训练模型的 TensorFlow Hub代码库。这些组件涵盖了非常广泛的使用案例,从前沿研究到大规模生产应用都有涉及。 TensorFlow 的可扩展性非常好。谷歌使用 TensorFlow 开发了计算量非常大的深度学习应用程序,比如下国际象棋和围棋的人工智能AlphaZero。
Keras 简介
Keras 是一个用Python编写的深度学习API,它构建于TensorFlow之上,可以方便地定义 和训练任意类型的深度学习模型。Keras最初是为研究而开发的,其目的是快速进行深度学习实验。通过TensorFlow,Keras可以在不同类型的硬件上运行,包括 GPU、TPU和普通CPU,还可以无缝扩展到上千台机器上,它能够以TensorFlow, CNTK, 或者Theano作为后端运行。
截至 2021 年底,Keras用户已超100万人,既包括初创公司和大公司的学术研究人员、工 程师和数据科学家,也包括研究生和业余爱好者。谷歌、Netflix、Uber、欧洲核子研究中心 (CERN)、美国国家航空航天局(NASA)、Yelp、Instacart、Square以及上百家初创公司都在使用Keras 解决各行各业的诸多问题。YouTube推荐是Keras模型生成的。Waymo自动驾驶汽车是用Keras模型开发的。在机器学习竞赛网站Kaggle上,Keras也是一个热门框架,大多数深度学习竞赛的优胜者用的是Keras。
Keras哲学理念与Python语言本身的哲学理念并无二致。有些语言只提供一种编程方法, 比如面向对象编程或函数式编程。与此相反,Python是一门多范式语言,它提供了多种使用模式,不同模式之间可以很好地协同工作。这使得Python适用于不同的使用场景:系统管理、 数据科学、机器学习工程、Web 开发,或仅学习如何编程。