2

我有一个形状为 (10,1000)、10 个输入和 1000 行的输入数据集 x,以及一个具有 (1,1000)、1 个输出和 1000 行的输出 y。

我定义的成本函数是

cost = tf.square(Y - prediction, name="cost")

预测是单个预测输出值,Y 是输出值的占位符。我使用下面的代码来获得成本的价值。

cost_value = sess.run(cost, feed_dict ={ X: x, Y : y })

那么输出成本函数值是一个 (1000,1000) 矩阵,因为 Y 的馈送是一个 (1,1000) 向量。

问题是我如何制作一个成本函数来计算矩阵的某个数字瞬间的成本,而无需逐行循环所有输入。

4

2 回答 2

3

tf.reduce_sum(cost)将对矩阵中的所有值求和。

https://www.tensorflow.org/api_docs/python/tf/reduce_sum

于 2017-05-06T16:22:18.060 回答
2

也会tf.reduce_sum(cost)做你想做的,我认为最好使用tf.reduce_mean(). 以下是几个原因:

  • 您会得到与矩阵大小无关的一致损失。平均而言,对于两倍大的矩阵,您将得到 4 倍的 reduce_sum
  • nan溢出的机会更少
于 2017-05-06T21:55:36.627 回答