TensorFlow线性回归报错TypeError:TensorShape转换失败解决方法
解决TensorFlow线性回归中TensorShape转换错误的问题
嘿,这问题我之前刚踩过坑,马上给你说怎么搞定!
错误原因分析
你代码里的n_dim = X_train.shape这行出了问题——X_train.shape返回的是一个元组(比如你的训练集如果是「样本数量×特征数量」的结构,那shape就是类似(1000, 5)这样的元组),而TensorFlow的tf.placeholder里,第二个参数需要的是每个维度的具体整数数值,你把整个元组塞进去,自然会报“不能把tuple转成TensorShape”的错误。
修正后的代码
只需要把n_dim改成取特征维度的数值就行,也就是用X_train.shape[1]来获取特征的数量:
# 获取特征维度数(也就是输入数据的列数) n_dim = X_train.shape[1] X = tf.placeholder(tf.float32, [None, n_dim]) Y = tf.placeholder(tf.float32, [None, 1])
额外小提示
X_train.shape[0]是训练集的样本数量,这里我们不需要它,因为placeholder的第一个参数用None就表示可以接受任意数量的样本输入。- 如果你不确定自己的数据集维度,可以先跑
print(X_train.shape)看看输出,比如输出(500, 3)就说明有500个样本,每个样本有3个特征,那n_dim就应该设为3。
内容的提问来源于stack exchange,提问作者Hồ Huy
相关产品推荐
相关产品推荐

