tensorflow
Многомерный softmax
Поиск…
Создание выходного слоя Softmax
Когда state_below
является двумерным state_below
, U
является матрицей двумерных весов, b
является class_size
length_size-length:
logits = tf.matmul(state_below, U) + b
return tf.nn.softmax(logits)
Когда state_below
является трехмерным тензором, U
, b
по-прежнему:
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)
Вычисление затрат на выходе уровня Softmax
Используйте tf.nn.sparse_softmax_cross_entropy_with_logits
, но будьте осторожны, что он не может принять вывод tf.nn.softmax
. Вместо этого вычислите немасштабированные активации, а затем стоимость:
logits = tf.matmul(state_below, U) + b
cost = tf.nn.sparse_softmax_cross_entropy_with_logits(logits, labels)
В этом случае: state_below
и U
должны быть двумерными матрицами, b
должен быть вектором размера, равным количеству классов, а labels
должны быть 2D-матрицей int32
или int64
. Эта функция также поддерживает тензоры активации с более чем двумя измерениями.
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow