问题是您正在使用损失函数进行分类(softmax通常用于分类),而您的网络可能会产生任意单个实数,因此它是回归而不是分类。使用适当的成本(例如,均方误差),您的网络将开始收敛。
在这种情况下,只需更改以下行:
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(pred, y))
像这样:
cost = tf.reduce_mean(tf.squared_difference(y, pred))