In [2]:
# %load /Users/facai/Study/book_notes/preconfig.py
%matplotlib inline

from IPython.display import Image

tf.estimator - 评价器模块简介

estimator模块本质上是对底层API(主要是Graph, Session, Saver, meta_graph等)的封装,所以它的代码看起来像是俄罗斯套娃,一层一层地把信息从高层到低层展开。但只要对底层API有一定了解,弄清整个逻辑并不太费力。

个人理解,主要是如下几个方面封装:

  • RunConfig: 封装了分布式运行信息,如IP和端口,模型存储路径。
  • replica_device_setter: 封装了变量、op和device关系,即算子分配信息。
  • EstimatorSpec: 封装了estimator不同行为模型下(Train, Evaluate, Predict)的图构建方法。
  • Scaffold:固化了一张特定图的全部信息。
  • MonitoredSession: 抽象了不同类型任务(ps, task, master)的Session创建方法。

大多数类的作用都是类型校验和数据封装,并不困难,就不多说了。下面是对train方法追踪涉及的模块框架,便于读者按图索骏。

In [3]:
Image('./res/tf_estimator.jpg')
Out[3]: