2 votes

Fonction de coût Tensorflow

J'ai un jeu de données d'entrée x avec la forme (10,1000), 10 entrées et 1000 lignes et une sortie y avec (1,1000), 1 sortie et 1000 lignes.

La fonction de coût que j'ai définie est

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

La prédiction est une seule valeur de sortie prédite et Y est le placeholder des valeurs de sortie. J'ai utilisé le code ci-dessous pour obtenir la valeur du coût.

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

Alors la valeur de la fonction de coût de sortie est une matrice (1000,1000) puisque l'alimentation de Y est un vecteur (1,1000).

La question est de savoir comment faire une fonction de coût qui calcule le coût en un instant numérique d'une matrice sans boucler toutes les entrées ligne par ligne.

2voto

c2huc2hu Points 1736

tf.reduce_sum(cost) fera la somme de toutes les valeurs de la matrice.

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

2voto

Salvador Dali Points 11667

Aussi tf.reduce_sum(cost) fera ce que vous voulez, je pense qu'il est préférable d'utiliser tf.reduce_mean() . Voici quelques raisons pour lesquelles :

  • vous obtenez une perte constante indépendamment de la taille de votre matrice. En moyenne, vous obtiendrez une somme réduite 4 fois plus importante pour une matrice deux fois plus grande.
  • moins de chances d'obtenir nan par débordement

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X