如何将 Tensorflow 与 Estimators 结合使用来定义一个对数据进行混洗的函数?
可以借助 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 训练逻辑回归模型。该模型用作其他算法的基线。我们使用泰坦尼克号数据集,目的是根据性别、年龄、舱位等特征预测乘客的生存情况。估算器使用特征列来描述模型如何解释原始输入特征。估算器需要一个数字输入向量,而特征列将有助于描述模型应如何转换数据集中的每个特征。
选择和使用正确的特征列集对于学习有效的模型至关重要。特征列可以是原始特征字典中的原始输入之一,也可以是使用在一个或多个基础列上定义的转换创建的新列。
线性估算器使用数字和分类特征。特征列可与所有 TensorFlow 估算器配合使用。它们的目标是定义用于建模的特征。它们还具有特征工程功能,例如独热编码、规范化和分桶。
示例
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://www.tensorflow.org/tutorials/estimator/linear
输出
A function is defined to shuffle the data The function is called
解释
input_function 说明如何将数据转换为 tf.data.Dataset。
它以流式方法为输入管道提供数据。
tf.data.Dataset 可采用多种来源,如数据框、csv 格式的文件等。

