chainer.functions.
embed_id
(x, W, ignore_label=None)[source]¶
One-hotベクトル入力のための効率的な線形関数。
この関数はワードエンベディング(word embeddings) の実装です。この関数は、2つの引数をとります。すなわち、\(B\) 次元の整数(integer)ベクトル IDs(words)の集合 x
と \(V \times d\) のfloat32の行列に埋め込まれたID(word)の集合 W
です。この関数は \(B \times d\) の行列を出力します。 この行列の i
番目の列がW
の x[i]
番目の列です。
この関数は入力 W
にのみ微分可能です。
Parameters: |
|
---|---|
Returns: |
出力値 |
Return type: |
Example
>>> x = np.array([2, 1]).astype('i')
>>> x
array([2, 1], dtype=int32)
>>> W = np.array([[0, 0, 0],
... [1, 1, 1],
... [2, 2, 2]]).astype('f')
>>> W
array([[ 0., 0., 0.],
[ 1., 1., 1.],
[ 2., 2., 2.]], dtype=float32)
>>> F.embed_id(x, W).data
array([[ 2., 2., 2.],
[ 1., 1., 1.]], dtype=float32)
>>> F.embed_id(x, W, ignore_label=1).data
array([[ 2., 2., 2.],
[ 0., 0., 0.]], dtype=float32)