Поиск…


Создание выходного слоя 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