KERAS运行时报错'int' object is not iterable如何解决?
错误根因
- TensorFlow版本API差异:高版本TensorFlow(Colab默认环境)支持
tf.keras.layers.Input直接传入单个整型作为输入维度,而你本地使用的TensorFlow 1.12.0要求该入参必须为元组类型。 - 代码语法问题:你写的
(input_dim)在Python中不会被识别为单元素元组,括号仅被当做运算优先级符号,实际传入Input层的是整型值,触发迭代int的类型错误。
修复方法
修改dense_layer函数中Input层的定义,补充逗号生成合法单元素元组:
def dense_layer(input_dim, dense_size): # 仅修改这一行,末尾加逗号即可 x = tf.keras.layers.Input((input_dim,)) dense = tf.keras.layers.Dense(dense_size)(x) model = tf.keras.models.Model(inputs=x, outputs=dense) return model
其他优化建议
- 补全代码缺失的依赖导入:需要提前添加
import tensorflow as tf、import time、import numpy as np语句。 - 修改文件写入逻辑:循环内重复打开文件未关闭,建议使用上下文管理器写法避免资源泄漏:
with open("dense_data.csv", "a+") as to_write: # 后续写入逻辑放在缩进块内
内容的提问来源于stack exchange,提问作者ayesha shah
相关产品推荐
相关产品推荐

