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

Coverage.py执行tensorflow.keras.Model.fit时提示‘No source for code’错误如何解决?

解决coverage报告因TensorFlow Autograph临时文件报错的问题

当测试用例中调用tensorflow.keras.Model.fit时,TensorFlow的Autograph机制会动态生成临时Python文件(如__autograph_generated_filexxxxxx.py),coverage工具会尝试追踪这些临时文件,但在生成报告阶段这些文件可能已被清理或无法访问,从而触发No source for code报错。以下是几种可行的解决方法:

  • 通过配置文件忽略临时文件
    在项目根目录创建或修改.coveragerc配置文件,添加路径排除规则,让coverage跳过对Autograph临时文件的统计:

    [run]
    omit =
        */Temp/*/__autograph_generated_file*.py
        */AppData/Local/Temp/*/__autograph_generated_file*.py
    
  • 命令行参数直接排除
    执行coverage run时,通过--omit参数指定要忽略的临时文件路径:

    coverage run --omit="*/Temp/*/__autograph_generated_file*.py,*/AppData/Local/Temp/*/__autograph_generated_file*.py" 你的测试脚本路径.py
    
  • 禁用Autograph(不推荐)
    如果不需要Autograph的代码优化能力,可以在代码中禁用它,避免生成临时文件:

    import tensorflow as tf
    
    # 全局禁用Autograph
    tf.autograph.set_verbosity(0)
    
    # 或仅针对训练函数禁用
    @tf.autograph.experimental.do_not_convert
    def run_training(model, x_data, y_data):
        model.fit(x_data, y_data)
    

    注意:这种方法可能降低模型训练的执行效率,仅在必要时使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 09:57:28