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

Keras执行model.fit()报IndexError: list index out of range问题求助

错误成因及修复方案

核心问题定位

  • 问题1:Normalization层的适配逻辑错误
    你当前调用normalizer.adapt(train_x[0])仅传入了单个训练样本(形状为(42,))用于统计归一化参数,该方法要求传入全量训练特征数据才能匹配后续批次输入的维度,单样本适配会导致层内部维度统计错乱,触发索引越界。
  • 问题2:axis参数配置不合理
    你将Normalization的axis参数设为None,代表对输入张量所有元素统一做归一化,而常规二维特征输入需要按特征维度(axis=-1/axis=1)对每个特征单独做归一化,参数不匹配会触发内部索引逻辑错误。
  • 问题3:输入数据类型不兼容
    你打印维度时强制将train_x转为NumPy数组,但如果直接传入原生Python嵌套列表到fit方法,低版本TensorFlow的内部索引逻辑不兼容该类型,也会触发索引越界。

修复代码

修正归一化层配置与适配逻辑

# axis设为-1,对每个特征单独做归一化
normalizer = Normalization(input_shape=[42,], axis=-1)
# 传入全量训练特征,提前转成NumPy数组避免类型问题
normalizer.adapt(np.array(train_x))

修正训练调用的输入类型

linear_model.compile(
    optimizer=tf.optimizers.Adam(learning_rate=0.1),
    loss='mean_absolute_error')

linear_model.fit(
    np.array(train_x),
    np.array(train_y),
    epochs=100)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:18:01