tensorflow
Wielowymiarowy softmax
Szukaj…
Tworzenie warstwy wyjściowej Softmax
Kiedy state_below
jest state_below
2D, U
jest macierzą wag 2D, b
jest class_size
długości class_size
:
logits = tf.matmul(state_below, U) + b
return tf.nn.softmax(logits)
Gdy state_below
jest tensorem 3D, U
, b
jak poprzednio:
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)
Obliczanie kosztów w warstwie wyjściowej Softmax
Użyj tf.nn.sparse_softmax_cross_entropy_with_logits
, ale uważaj, że nie może zaakceptować danych wyjściowych tf.nn.softmax
. Zamiast tego obliczyć nieskalowane aktywacje, a następnie koszt:
logits = tf.matmul(state_below, U) + b
cost = tf.nn.sparse_softmax_cross_entropy_with_logits(logits, labels)
W tym przypadku: state_below
i U
powinny być macierzami 2D, b
powinien być wektorem o wielkości równej liczbie klas, a labels
powinny być macierzą 2D int32
lub int64
. Ta funkcja obsługuje również tensory aktywacyjne o więcej niż dwóch wymiarach.
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow