#!/usr/bin/env python # coding: utf-8 # In[2]: # %load /Users/facai/Study/book_notes/preconfig.py get_ipython().run_line_magic('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') # 下面是一些有用的官方资料: # # + [ Creating Custom Estimators ](https://www.tensorflow.org/versions/master/get_started/custom_estimators) # + [ Estimators ](https://www.tensorflow.org/versions/master/programmers_guide/estimators) # + [ Distributed TensorFlow ](https://www.tensorflow.org/deploy/distributed) # + [ tf.estimator.Estimator ](https://www.tensorflow.org/versions/master/api_docs/python/tf/estimator/Estimator) # + [ tf.estimator.train_and_evaluate ](https://www.tensorflow.org/versions/master/api_docs/python/tf/estimator/train_and_evaluate) # In[ ]: