Функция стоимости тензорного потока
У меня есть входной набор данных х с формой (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)
суммирует все значения в матрице.
Также tf.reduce_sum(cost)
будет делать то, что вы хотите, я думаю, что лучше использовать tf.reduce_mean()
, Вот несколько причин, почему:
- Вы получаете постоянные потери независимо от размера вашей матрицы. В среднем вы получите уменьшенную в 4 раза большую матрицу, в два раза большую
- меньше шансов вы получите
nan
переполнением