如何使用 Python 中的 TensorFlow 实例化一个 Estimator?


可以使用 TensorFlow 中的 `DNNClassifier` 方法来实例化一个 Estimator,该方法存在于 TensorFlow 库的 `estimator` 类中。

阅读更多: 什么是 TensorFlow 以及 Keras 如何与 TensorFlow 协同工作以创建神经网络?

我们将使用 Keras 的 Sequential API,它有助于构建一个用于处理层级堆叠的顺序模型,其中每一层都只有一个输入张量和一个输出张量。

包含至少一层卷积层的神经网络被称为卷积神经网络。我们可以使用卷积神经网络来构建学习模型。

TensorFlow Text 包含与文本相关的类和操作的集合,可用于 TensorFlow 2.0。TensorFlow Text 可用于预处理序列建模。

我们使用 Google Colaboratory 来运行以下代码。Google Colab 或 Colaboratory 帮助在浏览器中运行 Python 代码,无需任何配置,并且可以免费访问 GPU(图形处理单元)。Colaboratory 建立在 Jupyter Notebook 之上。

Estimator 是 TensorFlow 对完整模型的高级表示。它旨在实现轻松扩展和异步训练。

模型使用鸢尾花数据集进行训练。

示例

print("Build a DNN that has 2 hidden layers with 30 and 10 hidden nodes each")
classifier = tf.estimator.DNNClassifier(
   feature_columns=my_feature_columns,
   hidden_units=[30, 10],
   n_classes=3)

代码来源 −https://tensorflowcn.cn/tutorials/estimator/premade#first_things_first

输出

Build a DNN that has 2 hidden layers with 30 and 10 hidden nodes each
INFO:tensorflow:Using default config.
WARNING:tensorflow:Using temporary folder as model directory: /tmp/tmpdh8866zb
INFO:tensorflow:Using config: {'_model_dir': '/tmp/tmpdh8866zb', '_tf_random_seed': None, '_save_summary_steps': 100, '_save_checkpoints_steps': None, '_save_checkpoints_secs': 600, '_session_config': allow_soft_placement: true
graph_options {
   rewrite_options {
      meta_optimizer_iterations: ONE
   }
}
, '_keep_checkpoint_max': 5, '_keep_checkpoint_every_n_hours': 10000, '_log_step_count_steps': 100, '_train_distribute': None, '_device_fn': None, '_protocol': None, '_eval_distribute': None, '_experimental_distribute': None, '_experimental_max_worker_delay_secs': None, '_session_creation_timeout_secs': 7200, '_checkpoint_save_graph_def': True, '_service': None, '_cluster_spec': ClusterSpec({}), '_task_type': 'worker', '_task_id': 0, '_global_id_in_cluster': 0, '_master': '', '_evaluation_master': '', '_is_chief': True, '_num_ps_replicas': 0, '_num_worker_replicas': 1}

解释

  • 鸢尾花问题被认为是一个分类问题。
  • Tensorflow 带有许多预制的分类器 Estimator,包括:
    • 用于执行多类分类的深度模型 `tf.estimator.DNNClassifier`。
    • 用于宽而深模型的 `tf.estimator.DNNLinearCombinedClassifier`。
    • 用于基于线性模型的分类器的 `tf.estimator.LinearClassifier`。
  • 对于鸢尾花问题,我们使用 `tf.estimator`。

更新于: 2021-02-22

144 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告