美文网首页
estimator调用流程

estimator调用流程

作者: 悠悠渔隐 | 来源:发表于2020-08-05 20:06 被阅读0次

    tensorflow estimator的代码是单独的repo

    https://github.com/tensorflow/estimator

    1. tensorflow 提供tf.estimator.train_and_evaluate 接口,用于模型的训练和评估,该接口需要三个参数,分别为 estimator,train_spec,eval_spec。

       train_and_evaluate 接口实际上是调用estimator的train接口执行训练任务。

    2.estimator

        1.estimator 对外提供train,evaluate,和predict接口

         triain接口在estimator内部实际上是调用内_train_model接口进行训练

        _train_model 默认情况下回调用 _train_model_default函数训练模型

        _train_model_default会调用 _get_features_and_labels_from_input_fn 获取model_fn接口中需要的 features, labels。features, labels 是通过_get_features_and_labels_from_input_fn 从estimator初始化时传入的input_fn 获取。

    _get_features_and_labels_from_input_fn 先调用 _call_input_fn,_call_input_fn会直接调用 input_fn接口,input_fn 返回的是一个tf.data.Dataset对象。然后调用estimator_util.parse_input_fn_result处理 input_fn  返回的tf.data.Dataset对象 。

    _train_model_default 调用_train_with_estimator_spec 

    _train_with_estimator_spec  会自动循环训练过程

    tf.data.TextLineDataset 是TextLineDatasetV1 继承 dataset_ops.DatasetV1Adapter 

    DatasetV1Adapter 继承 DatasetV1

    DatasetV1 继承 DatasetV2

    TextLineDatasetV1 的父类使用TextLineDatasetV2的实例初始化

    所以TextLineDatasetV1 实际上是TextLineDatasetV2

    TextLineDatasetV2调用_TextLineDataset

    _TextLineDataset 的成员variant_tensor 通过gen_dataset_ops.text_line_dataset 调用 reader_dataset_ops.cc  中的 TextLineDatasetOp

    tensorflow/tensorflow/core/kernels/data/reader_dataset_ops.cc   TextLineDatasetOp

    framework/dataset.h  定义 DatasetBaseIterator DatasetBase

    相关文章

      网友评论

          本文标题:estimator调用流程

          本文链接:https://www.haomeiwen.com/subject/hwhsrktx.html