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

运行bgru.py时出现ProgbarLogger无log_values属性错误求助

解决Keras 2.2.0中ProgbarLogger的AttributeError问题

你遇到的这个错误是Keras 2.2.0版本里ProgbarLogger回调的一个已知bug——这个版本的回调类里并没有定义log_values属性,但训练代码在epoch结束时试图调用它,从而触发了报错。结合你的情况,这里有几个可行的解决办法:

方案一:手动修复Keras源码

如果你有权限修改系统里的Keras文件,可以直接修复这个bug:

  • 找到Keras回调文件的路径:/usr/local/lib/python2.7/dist-packages/keras/callbacks.py
  • 打开文件后找到ProgbarLogger类,在它的__init__方法里添加一行初始化代码:
    self.log_values = []
    
  • 保存文件后重新运行你的训练代码,这个属性缺失的问题就会被解决。

方案二:禁用ProgbarLogger回调

如果你不想修改源码,可以直接在训练时排除这个有问题的回调:

  • 修改model.fit_generator的调用代码,手动指定空的回调列表:
    model.fit_generator(train_generator, steps_per_epoch=steps_epoch, epochs=10, callbacks=[])
    
  • 如果你需要记录训练日志,可以添加其他替代回调,比如CSVLogger来保存训练数据:
    from keras.callbacks import CSVLogger
    csv_logger = CSVLogger('training_log.csv')
    model.fit_generator(train_generator, steps_per_epoch=steps_epoch, epochs=10, callbacks=[csv_logger])
    

方案三:解决Keras 2.3.0的导入错误(推荐)

你提到安装Keras 2.3.0时出现ImportError: cannot import name tf_utils,这个问题是因为TensorFlow版本和Keras版本不兼容导致的。Keras 2.3.0需要搭配TensorFlow 1.14.x到2.0.x之间的版本,你可以尝试以下步骤:

  1. 先卸载当前的TensorFlow和Keras:
    pip uninstall -y tensorflow keras
    
  2. 安装兼容的TensorFlow版本:
    pip install tensorflow==1.14.0
    
  3. 再安装Keras 2.3.0:
    pip install keras==2.3.0
    

Keras 2.3.0已经修复了ProgbarLogger的这个bug,升级后应该能正常运行训练代码。

额外检查点

另外,建议你确认steps_epoch的计算是否正确:它应该等于训练样本总数除以batch_size的向上取整值(比如999个样本,batch_size为32的话,steps_epoch应该是32)。如果steps_epoch设置错误,也可能间接触发回调的异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 10:23:10