tensorflow
Multidimensionale softmax
Zoeken…
Een Softmax-uitvoerlaag maken
Wanneer state_below
een 2D-Tensor is, is U
een 2D-gewichtenmatrix, is b
een class_size
vector:
logits = tf.matmul(state_below, U) + b
return tf.nn.softmax(logits)
Wanneer state_below
een 3D-tensor is, U
, b
zoals eerder:
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)
Rekenkosten op een Softmax-uitvoerlaag
Gebruik tf.nn.sparse_softmax_cross_entropy_with_logits
, maar pas op dat het de uitvoer van tf.nn.softmax
niet kan accepteren. Bereken in plaats daarvan de niet-geschaalde activeringen en vervolgens de kosten:
logits = tf.matmul(state_below, U) + b
cost = tf.nn.sparse_softmax_cross_entropy_with_logits(logits, labels)
In dit geval: state_below
en U
moeten 2D-matrices zijn, b
moet een vector zijn met een grootte gelijk aan het aantal klassen, en labels
moeten een 2D-matrix van int32
of int64
. Deze functie ondersteunt ook activeringstensoren met meer dan twee dimensies.
Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow