tensorflow
Multidimensionell softmax
Sök…
Skapa ett Softmax-utgående lager
När state_below
är en 2D Tensor är U
en 2D viktsmatris, b
är en class_size
längdvektor:
logits = tf.matmul(state_below, U) + b
return tf.nn.softmax(logits)
När state_below
är en 3D-tensor, U
, b
som tidigare:
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)
Beräkna kostnader på ett Softmax-utgående lager
Använd tf.nn.sparse_softmax_cross_entropy_with_logits
, men se upp för att den inte kan acceptera utgången från tf.nn.softmax
. Beräkna istället de oskalade aktiveringarna och sedan kostnaden:
logits = tf.matmul(state_below, U) + b
cost = tf.nn.sparse_softmax_cross_entropy_with_logits(logits, labels)
I detta fall: state_below
och U
ska vara 2D-matriser, b
ska vara en vektor med en storlek lika med antalet klasser, och labels
ska vara en 2D-matris av int32
eller int64
. Denna funktion stöder också aktiveringstensorer med mer än två dimensioner.
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow