这可能看起来很愚蠢,但这是我在这里发表的第一篇文章。抱歉做错了什么。
我目前正在使用 python2.7 使用 TFX 0.11(即 tfdv-tft-tfserving)和tensorflow 1.11 构建一个简单的 ML 管道。我目前有一个 apache-flink 集群,我想将其用于 TFX。我知道 TFX 背后的框架是 apache-beams 2.8,它(apache-beams)目前通过可移植运行器层支持带有 python SDK 的 flink。
但问题是我如何通过这个可移植运行器概念使用 apache-beams 和 flink 运行器在 TFX (tfdv-tft) 中进行编码,因为 TFX 目前似乎只支持 DirectRunner 和 DataFlowRunner (Google Cloud)。
我在网上搜索了一段时间,在TFX网站上看到了最后一行,
“请使用tensorflow-transform标签将有关使用tf.Transform的任何问题直接提交给Stack Overflow。”
这就是我来这里的原因。任何想法或解决方法都非常感激。谢谢!
最佳答案
感谢您的提问。
免责声明:Portable Flink Runner 仍处于实验阶段,只能处理少量的输入数据。
以下是如何通过 Beam 在 Flink 上运行 TFX。
先决条件
- Linux
- Docker
- Beam 仓库:https://github.com/apache/beam
- 用于输入和输出的分布式文件系统。
运行 python 管道的说明:https://beam.apache.org/roadmap/portability/#python-on-flink
注意:我们目前仅支持 Flink 1.5.5
说明
1) 构建工作容器:
- 前往 Beam 结账目录
- 运行 gradle 命令:./gradlew :beam-sdks-python-container:docker
2) 运行 Flink 的 Beam JobServer:
- 前往 Beam 结账目录
- 运行 gradle 命令:./gradlew beam-runners-flink_2.11-job-server:runShadow 注意:此命令不会完成,因为它会启 Action 业服务器并保持其运行。
3) 提交管道
- 请参阅https://github.com/angoenka/model-analysis/blob/hack_1/examples/chicago_taxi/preprocess_flink.sh
- 注意:请确保将以下标志传递到您的管道
--实验=beam_fn_api
--runner 可移植运行者
--job_endpoint=本地主机:8099
--实验=worker_threads=100
--execution_mode_for_batch=BATCH_FORCED
关于machine-learning - 使用 flink runner 在梁上进行 Tensorflow 变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53844469/