tensorflow
Softmax multidimensionale
Ricerca…
Creazione di un livello di output Softmax
Quando state_below
è un tensore 2D, U
è una matrice di pesi 2D, b
è un vettore di lunghezza di class_size
:
logits = tf.matmul(state_below, U) + b
return tf.nn.softmax(logits)
Quando state_below
è un tensore 3D, U
, b
come prima:
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)
Costi di calcolo su un livello di output Softmax
Usa tf.nn.sparse_softmax_cross_entropy_with_logits
, ma tf.nn.sparse_softmax_cross_entropy_with_logits
attenzione che non può accettare l'output di tf.nn.softmax
. Calcola invece le attivazioni non graduate e quindi il costo:
logits = tf.matmul(state_below, U) + b
cost = tf.nn.sparse_softmax_cross_entropy_with_logits(logits, labels)
In questo caso: state_below
e U
dovrebbero essere matrici 2D, b
dovrebbe essere un vettore di una dimensione uguale al numero di classi e le labels
dovrebbero essere una matrice 2D di int32
o int64
. Questa funzione supporta anche i tensori di attivazione con più di due dimensioni.
Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow