tf.nn.embedding_lookup(
params,
ids,
partition_strategy='mod',
name=None,
validate_indices=True,
max_norm=None
)
:機能の指標に対応する行を選択し、ベクトルテンソル
TensorFlowリンク:https://tensorflow.google.cn/api_docs/python/tf/nn/embedding_lookup?hl=en
パラメータ:
- params:テンソルまたは配列;
- ID:対応するインデックス
- partition_strategy: lenの場合partition_strategyが使用されている(paramsは)> 1、分割しないのparamsエレメントのアリコートを、次いで、前者(max_id + 1)%LEN( paramsは) 多段ID。
- partition_strategy = 'MOD' 時間は、13のIDが5つのパーティションに分割されている場合:[0、5、10]、[1、6、11]、[2,7]、[12]、[3,8]、[ 4、9]、すなわち、データが列に従ってマッピングされた後、操作look_up。デフォルトでは、モッズです
- 場合partition_strategy = 'DIV' 時間、13のIDが5つのパーティションに分割されている:[0、1、2]、[3、4、5]、[6]、[7]、[8]、[9、10]、[ 11、12]、すなわち、データを連続標準的な手順に従ってソートされ、その後操作をlook_upします。
(図からhttps://www.jianshu.com/p/abea0d9d2436)
例えば:
NPのようnumpyのインポート A = tf.convert_to_tensor(np.array([[[1]、[2]、[3]、[4]、[5]、[6]]])) B = TF .nn.embedding_lookup(A、[0,1]、[1,0]、[0,0]) tf.Session()のSESとして有する: sess.run(tf.global_variables_initializer()) プリント( ' 」、sess.run(A)) 、印刷( '形状'、A.shape) プリント( 'B'、sess.run(B)) プリント( 'B形'、B.SHAPE)
結果:
[[[1] [2] [3] [4] [5] [6]]] 形状(3、2、1) B [[[[1] [2] [3 ] [4]]] [[[3] [4] [1] [2]]] [[1] [2] [1] [2]]]] Bの形状(3、2、 2、1)
参考文献: