TensorFlow中的高级API——Estimator

原文:
https://www.tensorflow.org/programmers_guide/estimators

Estimator 封装了以下部分:

  • 训练
  • 评估
  • 预测
  • 导出用于服务

评估器的优势

  • 基于Estimator的模型可以运行于本地,也可以运行在分布式环境中。更可以运行于CPU、GPU和TPU之上而无需修改代码
  • 方便了模型开发者间的分享
  • 创建模型比使用低等级API更容易
  • Estimator自身建立在tf.layers,简化定制
  • Estimator自动建立图表
  • 提供了安全的分布式训练循环来决定怎样以及何时:
    • 建立图表
    • 初始化变量
    • 开始队列
    • 处理异常
    • 创建检查点文件并从故障中恢复
    • 保存TensorBoard的摘要

使用Estimators编写应用程序时,必须将数据输入管道与模型分开。这种分离简化了不同数据集的实验。

预置评估器(Pre-made Estimators)

预置评估器创建和管理GraphSession对象,只需进行最少量的代码更改即可尝试不同的模型架构。例如, DNNClassifier 是一个预置的Estimator类,它通过密集的前馈神经网络来训练分类模型。

基于预置评估器的程序结构

  1. 写一个或多个数据集导入函数。例如训练集和测试集。每个数据集导入函数必须返回两个对象:

    • 一个字典,其中的键是特征名称,值是包含相应特征数据的Tensors(或SparseTensors)
    • 包含一个或多个标签的Tensor

    例如,下面的代码演示了输入函数的基本框架:

    def input_fn(dataset):
    ...  # manipulate dataset, extracting feature names and the label
    return feature_dict, label
  2. 定义特征列。每个tf.feature_column识别一个特征的名称,类型和任何输入预处理。以下片段创建了三个保存整数或浮点数据的特征列。 前两个特征列只是标识特征的名称和类型。 第三个特性列还指定了程序将调用的用于缩放原始数据的lambda:

    
    # Define three numeric feature columns.
    
    population = tf.feature_column.numeric_column('population')
    crime_rate = tf.feature_column.numeric_column('crime_rate')
    median_education =    tf.feature_column.numeric_column('median_education',
                    normalizer_fn='lambda x: x - global_education_mean')
  3. 实例化相关的预置评估器。例如:

    
    # Instantiate an estimator, passing the feature columns.
    
    estimator = tf.estimator.Estimator.LinearClassifier(
      feature_columns=[population, crime_rate, median_education],
      )
  4. 调用训练、评估、预测方法。例如,所有评估器都提供训练方法:

    
    # my_training_set is the function created in Step 1
    
    estimator.train(input_fn=my_training_set, steps=2000)

预置评估器的优点:

Best practices for determining where different parts of the computational graph should run, implementing strategies on a single machine or on a cluster.

Best practices for event (summary) writing and universally useful summaries.

自定义评估器

每个评估器的核心——无论是预置还是自定义——都是其模型函数,它是一种为训练,评估和预测构建图形的方法。当使用预置评估器时,其他人已经实现了该模型功能。当使用自定义评估器时,须自己编写模型函数。

推荐工作流程

  1. 假设存在合适的预置评估器,使用它构建第一个模型并使用其结果建立基线。
  2. 使用此预置评估器构建和测试整体流水线,包括数据的完整性和可靠性。
  3. 如果有合适的替代预置评估器可用,则运行实验以确定哪种预置评估器能够产生最佳结果。
  4. 可能需要通过构建自定义评估器来进一步改进模型。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值