应该尽可能使用最高层级的API。较高级别的API更易于使用,虽然不如底层API那么灵活。建议先从最高级API入手,让所有组件正常运作起来。如果你希望在某些特定的建模方面更加灵活一些,则可以选择下一个级别。每个级别都是使用低级API构建的,因此降低层级是没问题的。
TensorFlow由以下两个组件组成:
图协议(graph protocol)缓冲区。
●执行(分布式)图的运行环境(runtime)。
这两个组件类似于Python代码和Python编译器。正如在多个平台上实现了Python编译器,从而可以执行Python代码,TensorFlow可以在不同的硬件平台(TPU、CPU和GPU)上运行图。
8.1.1 tf.estimator API
tf.estimator是最常用的API。我们可以使用它来完成机器学习中的大部分任务。当然,我们也可以使用较低层级(原生)的TensorFlowAPI,但使用tf.estimator会大大减少代码量。tf.estimator与scikit-learnAPI兼容。正如前面提到的,scikit-learn是热门的开源机器学习库,它是基于Python的。目前全球有超过10万名用户在使用scikit-learn。以下是用tf.estimator实现的线性分类程序(伪代码):
8.1.2 Pandas 速成
Pandas是Python的一个开源数据分析的库,它广泛用在TensorFlow代码中。Pandas提供的数据结构Series和DataFrame极大地简化了数据分析过程中的一些烦琐操作。Series是一维数组,比如我们先引入Pandas API库,然后创建一个Series对象:
Series就是一个一维数组,每个数据对应一个索引值。上述例子的索引值和数据就是:
人工智能与大数据技术导论
214