tf.transform:将预处理添加到Keras模型吗?

时间:2018-10-19 18:21:39

标签: python tensorflow keras

我有一个使用keras后端进行文本分类的tensorflow模型。当前,它假定输入是一个numpy整数数组。

我想对此进行修改,以便可以对原始文本进行训练和预测。根据我的收集,这涉及使用tf.transform将字符串的张量转换为整数的张量。

我已经使用tf.transform进行了此操作,但是现在不确定如何将该预处理步骤添加到模型中作为第一层/第一步。需要明确的是,我的输入数据如下:

[{"review":"movie is great}, {"review":"awful film"}]

,输出为:

[{"review_out": array([-1, -1, 1, 0, 2])}, {"review_out": array([-1, -1, -1, 3, 4])]

执行此操作的函数称为preprocess。因此,我只想将运行preprocess作为DAG的第一步。

我该怎么办?

作为参考,这很重要,因为我想在ML Engine上进行实时预测。

1 个答案:

答案 0 :(得分:0)

如果使用tf.data.Dataset(),则存在一个tf.data.Dataset().map(map_func)函数,该函数可将map_func应用于数据集的所有元素。这可以用来添加您的预处理步骤。

https://www.tensorflow.org/api_docs/python/tf/data/Dataset

例如:

dataset = tf.data.Dataset.from_tensor_slices((x, y))

dataset = dataset.map(preprocess)

model.fit(dataset, ....)

通过numpy数组使用tf.data.Dataset()还有其他优点。