TensorFlow Extended (TFX):是否有简便方法调试Transform组件的函数?
TFX Transform图模式代码调试方案
针对你要排查的单步操作影响、输入数据形态两个问题,有3个可直接落地的简便方法,不需要修改原有图模式代码结构:
1. 插入tf.print打印节点
- 直接在你需要观察的操作前后插入
tf.print语句,执行Transform流水线时会自动把对应张量的数值、shape输出到运行日志,操作前后的打印结果对比即可明确该步骤对变量的修改效果 - 可以给打印内容加自定义前缀区分不同点位,示例写法:
tf.print("输入特征x的shape: ", tf.shape(x)) x = tf.square(x) tf.print("平方操作后的x值: ", x) - 该方法对原有代码侵入性极低,不需要调整整体图逻辑即可生效
2. 构造小样本本地单步测试
- 手动构造3-5条符合输入格式的小样本数据,封装为
tf.train.Example格式的小型数据集 - 用Apache Beam的本地
DirectRunner运行Transform流水线,指定单线程执行,配合上面的tf.print可以逐行看到所有代码的执行效果,整个运行过程只需要数秒,不需要搭建完整的TFX集群环境
3. 输出summary日志到TensorBoard
- 如果需要长期观察多轮运行的中间结果,可以在处理函数中给关注的张量加summary打点:
tf.summary.tensor("处理前的特征y", y, step=0) y = tf.cast(y, tf.float32) tf.summary.tensor("类型转换后的特征y", y, step=0) - 开启summary输出后,运行结束直接在TensorBoard中查看所有打点张量的数值、shape分布,能更直观梳理全链路的处理逻辑
内容的提问来源于stack exchange,提问作者stats_b
相关产品推荐
相关产品推荐

