深度学习实战:基于TensorFlow 2和Keras(原书第2版)
上QQ阅读APP看书,第一时间看更新

1.1 TensorFlow是什么

TensorFlow(TF)是一个功能强大的开源软件库,它由Google的布莱恩(Brain)团队开发,主要用于深度神经网络。它自2015年11月使用Apache 2.0开源协议首次发布后飞速发展,截至2019年5月,它在Github的项目仓库(https://github.com/tensor-flow/tensorflow)上已经有超过51 000条提交,大约1830个贡献者。这些数据说明了它自身的流行度。

我们先来看看TensorFlow到底是什么,以及它为何在众多深度神经网络研究人员和工程师中如此流行。Google称它为“机器智能的开源软件库”,但随着很多深度学习库的出现,比如PyTorch(https://pytorch.org/)、Caffe(https://caffe.berkeleyvision.org/)和MxNet(https://mxnet.apache.org/),是什么使得TensorFlow仍然与众不同呢?大多数深度学习库(如TensorFlow)都有自动求导工具(一种用于优化的数学工具),许多是开源平台,其中大多数提供CPU/GPU选项,有预训练模型,支持常用的神经网络架构(比如循环神经网络、卷积神经网络和深度信念网络)。

除此之外,TensorFlow还有以下重要的功能:

  • 它适用于所有流行的编程语言,比如,Python、C++、Java、R和Go。
  • Keras作为高阶神经网络API集成到了TensorFlow中(自2.0开始,Keras成为与TensorFlow交互的标准API)。该API指定了软件组件间的交互方式。
  • TensorFlow允许部署模型且易于在生产中使用。
  • TensorFlow 2.0在基于静态图的图计算基础上,增加了动态计算(见第2章)。
  • 最重要的是,TensorFlow拥有非常好的社区支持。

对于所有开源项目,Github上的五角星数量是衡量其流行度的重要途径(见图1-1)。截至2019年3月,TensorFlow、Keras和PyTorch的星数分别为123 000、39 100和25 800。可见,TensorFlow成了机器学习中最受欢迎的框架。

024-01

图1-1 Github上各种深度学习项目的星数

Google Trends(趋势)是另一种衡量流行度的途径,结果再次证明TensorFlow和Keras分列一二位(截至2019年底),而PyTorch紧随其后(见图1-2)。

024-02

图1-2 各种深度学习项目的Google Trends