使用flink运行器对梁进行Tensorflow变换

时间:2018-12-19 04:11:05

标签: machine-learning apache-flink apache-beam tensorflow-transform

看似愚蠢,但这是我在这里的第一篇文章。抱歉做错了什么。

我目前正在使用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。

但是问题是我如何通过此便携式运行器概念使用带有flink运行器的apache-beams在TFX(tfdv-tft)中进行编码,因为TFX当前似乎仅支持DirectRunner和DataFlowRunner(Google Cloud)。

我已经在网上搜索了一段时间,并在TFX网站上看到了最后一行,

“请直接说明有关使用tf。使用tensorflow-transform标记转换为Stack Overflow的任何问题。”

这就是为什么我在这里。任何想法或解决方法都非常感激。谢谢!

1 个答案:

答案 0 :(得分:2)

感谢您的提问。

免责声明:Portable Flink Runner仍处于实验阶段,仅适用于少量输入数据。

这里是如何通过Beam在Flink上运行TFX。

先决条件

运行python管道的指令:https://beam.apache.org/roadmap/portability/#python-on-flink
注意:我们目前仅支持Flink 1.5.5

说明

1)建立工作容器:

  • 转到Beam结帐目录
  • 运行gradle命令:./gradlew:beam-sdks-python-container:docker

2)运行Beam JobServer for Flink:

  • 转到Beam结帐目录
  • 运行gradle命令:./gradlew beam-runners-flink_2.11-job-server:runShadow 注意:此命令在启动作业服务器并保持其运行状态时不会完成。

3)提交管道

--experiments=beam_fn_api --runner PortableRunner --job_endpoint=localhost:8099 --experiments=worker_threads=100 --execution_mode_for_batch=BATCH_FORCED