TensorFlow实现Python线性回归出现Incompatible shapes报错求助
问题原因
报错的核心原因是输入特征数组X和标签数组Y的长度不匹配:
- 你定义的
X数组共有17个元素,计算得到n_samples = 17 - 你定义的
Y数组共有18个元素
在计算损失函数执行y_pred - y_true操作时,两个形状不同的张量无法进行逐元素运算,因此抛出InvalidArgumentError。
修正方案
只需要对齐两个数组的长度即可,两种可选方式:
- 补充
X数组中缺失的1个对应特征值,让X长度变为18和Y匹配 - 删除
Y数组中多余的1个标签值,让Y长度变为17和X匹配
这里以第二种方式为例,修正后的数组定义代码如下:
# 原X数组保持不变,长度17 X= np.array([3.3,4.4,5.5,6.71,6.93,4.168,9.779,6.182,7.59,2.167, 7.042,10.791,5.313,7.997,5.654, 9.27,3.1]) # 删除Y数组最后多余的1个元素,长度改为17 Y=np.array([1.7,2.76,2.09,3.19,1.694,1.573,3.366,2.596,2.53,1.22, 1, 2.827,3.465,1.65,2.904,2.42,2.94])
修改后重新运行代码即可正常训练,最后会输出拟合的线性回归参数以及绘制拟合效果图。
内容的提问来源于stack exchange,提问作者Nwankwo Fortune
相关产品推荐
相关产品推荐

