Path: blob/master/site/zh-cn/lattice/tutorials/custom_estimators.ipynb
25118 views
Copyright 2020 The TensorFlow Authors.
TF Lattice 自定义 Estimator
警告:不建议将 Estimator 用于新代码。Estimator 运行
v1.Session
风格的代码,此类代码更加难以正确编写,并且可能会出现意外行为,尤其是与 TF 2 代码结合使用时。Estimator 确实在我们的 [兼容性保证] (https://tensorflow.org/guide/versions) 范围内,但不会获得任何额外功能,而且没有除安全漏洞修复之外的任何其他修复。请参阅迁移指南以了解详情。
概述
您可以使用自定义 Estimator 通过 TFL 层创建任意单调模型。本指南概述了创建此类 Estimator 所需的步骤。
设置
安装 TF Lattice 软件包:
导入所需的软件包:
下载 UCI Statlog (Heart) 数据集:
设置用于在本指南中进行训练的默认值:
特征列
与任何其他 TF Estimator 一样,数据通常需要通过 input_fn 传递给 Estimator,并使用 FeatureColumns 进行解析。
请注意,分类特征不需要用密集特征列包装,因为 tfl.laysers.CategoricalCalibration
层可以直接使用分类索引。
创建 input_fn
与任何其他 Estimator 一样,您可以使用 input_fn 将数据馈送给模型进行训练和评估。
创建 model_fn
您可以通过多种方式创建自定义 Estimator。在这里,我们将构造一个在已解析的输入张量上调用 Keras 模型的 model_fn
。要解析输入特征,您可以使用 tf.feature_column.input_layer
、tf.keras.layers.DenseFeatures
或 tfl.estimators.transform_features
。如果使用后者,则不需要使用密集特征列包装分类特征,并且生成的张量不会串联,这样可以更轻松地在校准层中使用特征。
要构造模型,您可以搭配使用 TFL 层或任何其他 Keras 层。在这里,我们从 TFL 层创建一个校准点阵 Keras 模型,并施加一些单调性约束。随后,我们使用 Keras 模型创建自定义 Estimator。
训练和 Estimator
使用 model_fn
,我们可以创建和训练 Estimator。