我对TensorFlow比较新,我在修改一些示例时遇到了麻烦,无法使用输入函数进行批处理/流处理。更具体地说,修改此脚本以使其适合在Google Cloud ML上进行培训和服务部署的“最佳”方法是什么?
类似于这个例子:
https://github.com/GoogleCloudPlatform/cloudml-samples/tree/master/census/estimator/trainer
我可以将其打包并在云中进行训练,但我无法弄清楚如何将简单的vocab_processor转换应用于输入张量。我知道如何使用pandas,但我不能将转换应用于批处理(使用chunk_size参数)。如果我可以在TensorFlow中重复使用我的pandas预处理管道,我将非常高兴。
答案 0 :(得分:1)
我认为你有3个选择
1)您无法在TF中重复使用pandas预处理管道。但是,您可以使用pandas预处理的输出启动TF。因此,您可以构建一个词汇表并将文本词转换为整数,并将新的预处理数据集保存到磁盘。然后在TF中读取整数数据(编码文本)进行训练。
2)你可以在熊猫的TF之外建立一个词汇。然后在TF内部,读完单词后,你可以创建一个表格来将文本映射到整数。但是如果你打算在TF之外建立一个词汇,你也可以在TF之外的同一时间进行转换,这是选项1.
3)使用tensorflow_transform。您可以在文本列上调用tft.string_to_int()来自动构建词汇并转换为整数。 tensorflow_transform的输出是tf.example格式的预处理数据。然后,培训可以从tf.example文件开始。这又是选项1,但使用了tf.example文件。如果要对原始文本数据运行预测,此选项允许您创建内置相同文本预处理的导出图形,因此您不必在预测时管理预处理步骤。但是,这个选项最复杂,因为它引入了两个额外的想法:tf.example文件和光束管道。
有关tensorflow_transform的示例,请参阅https://github.com/GoogleCloudPlatform/cloudml-samples/tree/master/criteo_tft
和
https://github.com/GoogleCloudPlatform/cloudml-samples/tree/master/reddit_tft