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

执行TensorFlow代码时出现NameError:compile_and_fit未定义

解决NameError: name 'compile_and_fit' is not defined问题

这个报错其实很好理解——compile_and_fit并不是TensorFlow的内置函数,它是TensorFlow官方Colab示例文档里自定义的辅助函数,用来封装模型编译、训练的重复逻辑。你直接复制了调用这个函数的代码,但没把前面定义它的部分一起抄过来,所以Python找不到这个函数。

解决方案:手动定义compile_and_fit函数

你只需要在调用它的代码之前,先添加这个函数的定义就行。官方Colab示例里的compile_and_fit通常长这样(和你用到的时间序列窗口逻辑完全匹配):

import tensorflow as tf

def compile_and_fit(model, window, patience=2):
    # 定义早停回调,防止过拟合
    early_stopping = tf.keras.callbacks.EarlyStopping(
        monitor='val_loss',
        patience=patience,
        mode='min'
    )
    
    # 编译模型
    model.compile(
        loss=tf.losses.MeanSquaredError(),
        optimizer=tf.optimizers.Adam(),
        metrics=[tf.metrics.MeanAbsoluteError()]
    )
    
    # 训练模型并返回训练历史
    history = model.fit(
        window.train,
        epochs=100,
        validation_data=window.val,
        callbacks=[early_stopping]
    )
    return history

注意事项

  • 确保先导入tensorflow(上面代码里的import tensorflow as tf),不然函数里的tf.xxx会报错。
  • 如果原Colab示例里的compile_and_fit有不同的参数(比如调整了patience值、换了损失函数/优化器),你要对应修改这个自定义函数,尽量和原示例保持一致,这样后续的模型评估结果才会和文档里的预期匹配。

把这段定义代码放在你调用compile_and_fit(lstm_model, wide_window)的代码之前,再运行就不会报错啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 00:17:49