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