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

运行GitHub下载的CNN训练代码报AttributeError: 'list'对象无'value'属性

错误原因

tf.compat.v1.summary.FileWriter的add_summary方法要求传入单个序列化的Summary proto对象,你的代码中存在两处问题触发报错:

  1. 类初始化时self.summaries被定义为存储多个summary op的列表
  2. 训练步执行sess.run后step_data['summaries']是多个Summary对象组成的列表,直接传入add_summary时方法尝试访问列表的value属性失败,触发类型错误。

修复方案

方案1(推荐):合并所有summary为单个对象

在所有summary op添加到self.summaries列表之后,新增一行合并操作:

# 放在__init__方法中self._setup_prediction()调用之后即可
self.merged_summaries = tf.compat.v1.summary.merge(self.summaries)

修改_train_step方法中tofetch的配置:

tofetch['summaries'] = self.merged_summaries

该方案会把所有summary合并为一个对象写入日志,是TensorFlow summary的标准使用方式。

方案2:遍历列表逐个写入

如果需要单独处理每个summary,直接修改写入summary的代码段:

# 把原来的单行add_summary调用替换为下面的遍历逻辑
for summary_item in step_data['summaries']:
    self.summary_writer.add_summary(summary_item, global_step=step)

其他说明

日志中的GPU库缺失、旧接口弃用警告均为TensorFlow版本兼容性问题,不影响核心训练逻辑,你使用的是TensorFlow 1.x风格的代码运行在2.x环境中,若要消除警告可按照日志提示将旧的队列式数据接口替换为tf.data系列接口即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:09:02