Keras model.fit() IndexError:列表索引超出范围

Posted

技术标签:

【中文标题】Keras model.fit() IndexError:列表索引超出范围【英文标题】:Keras model.fit() IndexError: list index out of range 【发布时间】:2021-12-04 14:44:34 【问题描述】:

我需要一些帮助,我总是遇到这种奇怪的情况,我的 Keras 模型超出范围

print(np.array(train_x).shape)
print(np.array(train_y).shape)

返回:

(731, 42)
(731,)

然后:

normalizer = Normalization(input_shape=[42,], axis=None)
normalizer.adapt(train_x[0])

linear_model = Sequential([
    normalizer,
    Dense(units=1)
])
linear_model.summary()

演出:

Model: "sequential_1"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
normalization_5 (Normalizati (None, 42)                3         
_________________________________________________________________
dense_1 (Dense)              (None, 1)                 43        
=================================================================
Total params: 46
Trainable params: 43
Non-trainable params: 3
_________________________________________________________________

然后:

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

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

这会导致 IndexError: list index out of range。看起来我的输入形状正确。知道是什么原因造成的吗?

【问题讨论】:

train_xtrain_y 应该是 NumPy 数组,即 numpy.ndarray 类型。 啊,成功了!我最初遇到 numpy 数组的问题。看起来我只是做错了。谢谢! 【参考方案1】:

train_xtrain_y 需要是 numpy 数组。

【讨论】:

以上是关于Keras model.fit() IndexError:列表索引超出范围的主要内容,如果未能解决你的问题,请参考以下文章

运行 model.fit() 时的 tf.keras (RNN) 层问题

使用 keras.utils.Sequence 和 keras.model.fit_generator 时出现 KeyError。

Keras model.fit() IndexError:列表索引超出范围

keras 的 model.fit 中没有 tf.Print 的结果

使用 tf.keras.Model.fit 进行训练时如何将自定义摘要添加到 tensorboard

使用Keras model.fit_generator生成器