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

调用model.fit时Keras模型出现ValueError,求解决方法

解决Keras中model.fit触发的ValueError问题

问题复现

运行以下代码时调用model.fit()触发ValueError:

import numpy as np
import tensorflow as tf

X=np.array([-7.0,-4.0,-1.0,2.0,5.0,8.0,11.0,14.0])
y=np.array([3.0,6.0,9.0,12.0,15.0,18.0,21.0,24.0])
X=tf.cast(tf.constant(X), dtype=tf.float32)
y=tf.cast(tf.constant(y), dtype=tf.float32)

tf.random.set_seed(42)

model = tf.keras.Sequential([
tf.keras.layers.Dense(1)
])
model.compile(loss=tf.keras.losses.mae,
          optimizer=tf.keras.optimizers.SGD(),
          metrics=["mae"])
model.fit(X, y, epochs=5)

报错片段:

ValueError                                Traceback (most recent call last)
 in 
10               metrics=["mae"])
11 # 3. Fit the model
---> 12 model.fit(X, y, epochs=5)

1 frames
/usr/local/lib/python3.8/dist-packages/keras/engine/training.py in tf__train_function(iterator)
13                 try:
14                     do_return = True

问题原因

Keras的Dense层默认期望输入是二维张量,格式为(样本数量, 特征数量)。你的X是一维张量(形状为(8,)),无法满足Dense层的输入维度要求,导致训练时维度不匹配报错。

解决方法

给X增加一个维度,将其从一维转为二维,两种常用实现方式:

  • 方式1:使用tf.expand_dims
    修改X的定义部分,在最后一个维度添加新轴:

    X = tf.expand_dims(tf.cast(tf.constant(X), dtype=tf.float32), axis=-1)
    

    或单独执行维度扩展:

    X = tf.expand_dims(X, axis=-1)
    
  • 方式2:使用numpy.reshape
    通过reshape指定特征数为1,自动计算样本数量:

    X = tf.cast(tf.constant(X.reshape(-1, 1)), dtype=tf.float32)
    

修改后的完整可运行代码:

import numpy as np
import tensorflow as tf

X=np.array([-7.0,-4.0,-1.0,2.0,5.0,8.0,11.0,14.0])
y=np.array([3.0,6.0,9.0,12.0,15.0,18.0,21.0,24.0])
# 给X增加维度,转为(8,1)的二维张量
X=tf.expand_dims(tf.cast(tf.constant(X), dtype=tf.float32), axis=-1)
y=tf.cast(tf.constant(y), dtype=tf.float32)

tf.random.set_seed(42)

model = tf.keras.Sequential([
tf.keras.layers.Dense(1)
])
model.compile(loss=tf.keras.losses.mae,
          optimizer=tf.keras.optimizers.SGD(),
          metrics=["mae"])
model.fit(X, y, epochs=5)

修改后X的形状变为(8,1),符合Dense层的输入要求,即可正常启动训练。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 03:15:47