You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Keras自定义train_step函数在model.fit调用时打印无输出问题问询

问题原因及解决方法

核心原因

你为train_step添加的@tf.function装饰器会将函数转换为TensorFlow静态计算图执行,Python原生的print属于Python侧运行时逻辑,仅会在首次调用函数、构建静态图的阶段执行一次,后续训练阶段直接运行已构建完成的静态图,不会再触发print逻辑,因此看不到打印输出。
结合你提到的模型可以正常训练的现象,可以确定自定义的train_step已经被model.fit正确调用,不存在调用失效的问题,也不是输出到了其他不可见位置。

解决方案

  • 替换Python原生print为TensorFlow内置的tf.print:tf.print会作为算子被嵌入到静态计算图中,每次图执行阶段都会正常输出张量的实际运行值到控制台。
  • 调试阶段可临时注释掉@tf.function装饰器:此时train_step会以普通Python函数模式运行,原生print也可以正常输出,调试完成后再加回装饰器即可恢复训练性能。

内容的提问来源于stack exchange,提问作者wuannnn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 15:36:03