tf.nn.embedding_lookup()

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)

  

  

参考文献:

[1] tf.nn.embedding_lookupレコード

おすすめ

転載: www.cnblogs.com/nxf-rabbit75/p/11282480.html