Функция стоимости тензорного потока

У меня есть входной набор данных х с формой (10,1000), 10 входов и 1000 строк и выход у с (1,1000), 1 выход и 1000 строк.

Я определил функцию стоимости

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

Прогноз представляет собой одно прогнозируемое выходное значение, а Y является заполнителем выходных значений. Я использовал код ниже, чтобы получить значение стоимости.

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

Тогда значение функции выходной стоимости представляет собой матрицу (1000,1000), так как подача Y является вектором (1,1000).

Вопрос в том, как я могу создать функцию стоимости, которая вычисляет стоимость в мгновенном числе матрицы, не зацикливая все входные данные построчно.

2 ответа

Решение

tf.reduce_sum(cost) суммирует все значения в матрице.

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

Также tf.reduce_sum(cost) будет делать то, что вы хотите, я думаю, что лучше использовать tf.reduce_mean(), Вот несколько причин, почему:

  • Вы получаете постоянные потери независимо от размера вашей матрицы. В среднем вы получите уменьшенную в 4 раза большую матрицу, в два раза большую
  • меньше шансов вы получите nan переполнением
Другие вопросы по тегам