tensorflow
Softmax multidimensionnel
Recherche…
Création d'une couche de sortie Softmax
Lorsque state_below
est un state_below
2D, U
est une matrice de poids 2D, b
est un vecteur class_size
:
logits = tf.matmul(state_below, U) + b
return tf.nn.softmax(logits)
Lorsque state_below
est un tenseur 3D, U
, b
comme auparavant:
def softmax_fn(current_input):
logits = tf.matmul(current_input, U) + b
return tf.nn.softmax(logits)
raw_preds = tf.map_fn(softmax_fn, state_below)
Calcul des coûts sur une couche de sortie Softmax
Utilisez tf.nn.sparse_softmax_cross_entropy_with_logits
, mais attention, il ne peut pas accepter la sortie de tf.nn.softmax
. Au lieu de cela, calculez les activations non calibrées, puis le coût:
logits = tf.matmul(state_below, U) + b
cost = tf.nn.sparse_softmax_cross_entropy_with_logits(logits, labels)
Dans ce cas: state_below
et U
doivent être des matrices 2D, b
doit être un vecteur de taille égale au nombre de classes, et les labels
doivent être une matrice 2D de int32
ou int64
. Cette fonction prend également en charge les tenseurs d’activation avec plus de deux dimensions.
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow