首页 > 解决方案 > Keras model.fit() IndexError:列表索引超出范围

问题描述

我需要一些帮助,我一直遇到这种奇怪的情况,我的 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。看起来我的输入形状正确。知道是什么原因造成的吗?

标签: python-3.xtensorflowkeras

解决方案


train_x并且train_y需要是 numpy 数组。


推荐阅读