如何使用 Estimators 在 TensorFlow 中定义一个用于数据混洗的函数?


借助 Estimators,可以定义一个用于数据混洗的函数。可以使用 ‘from_tensor_slices’ 方法创建一个存储数据的字典。

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

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

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

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

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

我们将使用 tf.estimator API 训练一个逻辑回归模型。该模型用作其他算法的基线。我们使用泰坦尼克号数据集,目标是根据性别、年龄、等级等特征预测乘客的生存情况。Estimators 使用特征列来描述模型如何解释原始输入特征。Estimator 期望一个数值输入向量,特征列将有助于描述模型如何转换数据集中每个特征。

选择和使用正确的特征列集对于学习有效的模型至关重要。特征列可以是原始特征字典中的原始输入之一,也可以是使用在一个或多个基列上定义的转换创建的新列。

线性估计器同时使用数值和分类特征。特征列适用于所有 TensorFlow Estimators。它们的目标是定义用于建模的特征。它们还具有特征工程功能,例如独热编码、规范化和分箱。

示例

print("A function is defined to shuffle the data")
def make_input_fn(data_df, label_df, num_epochs=10, shuffle=True, batch_size=32):
def input_function():
ds = tf.data.Dataset.from_tensor_slices((dict(data_df), label_df))
if shuffle:
  ds = ds.shuffle(1000)
  ds = ds.batch(batch_size).repeat(num_epochs)
 return ds
return input_function
print("The function is called")
train_input_fn = make_input_fn(dftrain, y_train)
eval_input_fn = make_input_fn(dfeval, y_eval, num_epochs=1, shuffle=False)

代码来源 −https://tensorflowcn.cn/tutorials/estimator/linear

输出

A function is defined to shuffle the data
The function is called

解释

  • input_function 说明如何将数据转换为 tf.data.Dataset。

  • 它以流式方法馈送输入管道。

  • tf.data.Dataset 可以接收多个数据源,例如数据框、csv 格式的文件等等。

更新于:2021年2月25日

77 次浏览

启动你的职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.