サーチ…


Softmax出力レイヤの作成

state_belowが2D Tensorの場合、 Uは2D重み行列、 bclass_size -lengthベクトルです。

logits = tf.matmul(state_below, U) + b
return tf.nn.softmax(logits)

state_belowが3Dテンソルである場合、 Ubstate_belowように:

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_belowUは2D行列でなければならず、 bはクラス数に等しいサイズのベクトルでなければならず、 labelsint32またはint64 2D行列でなければなりません。この関数は、2次元以上の活性化テンソルもサポートしています。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow