tensorflow
多次元ソフトマックス
サーチ…
Softmax出力レイヤの作成
state_belowが2D Tensorの場合、 Uは2D重み行列、 bはclass_size -lengthベクトルです。
logits = tf.matmul(state_below, U) + b
return tf.nn.softmax(logits)
state_belowが3Dテンソルである場合、 U 、 bはstate_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_belowとUは2D行列でなければならず、 bはクラス数に等しいサイズのベクトルでなければならず、 labelsはint32またはint64 2D行列でなければなりません。この関数は、2次元以上の活性化テンソルもサポートしています。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow