TensorFlow训练回归模型调用Sequential层出现ValueError如何解决
报错原因
该报错的核心诱因是输入训练数据的维度不符合Keras全连接层(Dense)的预期格式。
你通过np.arange生成的X_reg_train是一维数组,形状为(150,),而Keras的Dense层默认要求输入为二维张量,结构为(样本数, 特征数),你的单特征回归场景下,输入张量形状应为(150, 1),维度不匹配触发了ValueError。
解决方案
可任选以下任意一种方案修复:
- 调整输入数据维度,给训练、测试输入数据增加特征维度
执行训练代码前添加以下代码即可:# 为数组增加最后一个维度作为特征维度 X_reg_train = np.expand_dims(X_reg_train, axis=-1) X_reg_test = np.expand_dims(X_reg_test, axis=-1) - 在模型第一层指定输入形状,显式告知模型输入的特征维度
调整模型定义的第一层代码即可:model_3 = tf.keras.Sequential([ tf.keras.layers.Dense(100, input_shape=(1,)), # 新增input_shape参数指定单特征输入 tf.keras.layers.Dense(10), tf.keras.layers.Dense(1) ])
内容的提问来源于stack exchange,提问作者user14653534
相关产品推荐
相关产品推荐

