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