從張量列表中查找給定 id 和權重的嵌入。
用法
tf.compat.v1.nn.embedding_lookup_sparse(
params, sp_ids, sp_weights, partition_strategy='mod', name=None,
combiner=None, max_norm=None
)
參數
-
params
表示完整嵌入張量的單個張量,或除了第一個維度之外所有相同形狀的列表張量,表示分片嵌入張量。或者,通過沿維度 0 分區創建的PartitionedVariable
。每個元素的大小必須針對給定的partition_strategy
進行適當調整。 -
sp_ids
N x MSparseTensor
of int64 ids,其中 N 通常是批量大小,M 是任意的。 -
sp_weights
浮點/雙倍權重的SparseTensor
或指示所有權重的None
應為 1。如果指定,sp_weights
必須具有與sp_ids
完全相同的形狀和索引。 -
partition_strategy
指定分區策略的字符串,如果len(params) > 1
則相關。目前支持"div"
和"mod"
。默認為"mod"
。有關詳細信息,請參閱tf.nn.embedding_lookup
。 -
name
操作的可選名稱。 -
combiner
指定歸約操作的字符串。目前支持"mean"、"sqrtn"和"sum"。 "sum" 計算每行嵌入結果的加權和。 "mean" 是加權總和除以總重量。 "sqrtn" 是加權和除以權重平方和的平方根。默認為mean
。 -
max_norm
如果不是None
,如果每個嵌入的 l2-norm 大於此值,則在組合之前將對其進行裁剪。
返回
-
表示稀疏 id 的組合嵌入的密集張量。對於由表示的密集張量中的每一行
sp_ids
,op 查找該行中所有 id 的嵌入,將它們乘以相應的權重,並按指定組合這些嵌入。換句話說,如果
shape(combined params) = [p0, p1, ..., pm]
和
shape(sp_ids) = shape(sp_weights) = [d0, d1]
然後
shape(output) = [d0, p1, ..., pm]
。例如,如果 params 是一個 10x20 矩陣,那麽 sp_ids /sp_weights 是
[0, 0]:id 1, weight 2.0 [0, 1]:id 3, weight 0.5 [1, 0]:id 0, weight 1.0 [2, 3]:id 1, weight 3.0
使用
combiner
="mean",則輸出將是一個 3x20 矩陣,其中output[0,:] = (params[1,:] * 2.0 + params[3,:] * 0.5) / (2.0 + 0.5) output[1,:] = (params[0,:] * 1.0) / 1.0 output[2,:] = (params[1,:] * 3.0) / 3.0
拋出
-
TypeError
如果sp_ids
不是SparseTensor
,或者如果sp_weights
既不是None
也不是SparseTensor
。 -
ValueError
如果combiner
不是 {"mean"、"sqrtn"、"sum"} 之一。
此操作假定在由sp_ids 表示的密集張量中的每一行至少有一個 id(即沒有具有空特征的行),並且 sp_ids 的所有索引都以規範的行優先順序排列。
sp_ids
和 sp_weights
(如果不是 None)是排名為 2 的 SparseTensor
。嵌入總是沿最後一個維度聚合。
它還假設所有 id 值都在 [0, p0) 範圍內,其中 p0 是沿維度 0 的參數大小的總和。
相關用法
- Python tf.compat.v1.nn.erosion2d用法及代碼示例
- Python tf.compat.v1.nn.static_rnn用法及代碼示例
- Python tf.compat.v1.nn.sufficient_statistics用法及代碼示例
- Python tf.compat.v1.nn.dynamic_rnn用法及代碼示例
- Python tf.compat.v1.nn.separable_conv2d用法及代碼示例
- Python tf.compat.v1.nn.depthwise_conv2d_native用法及代碼示例
- Python tf.compat.v1.nn.weighted_cross_entropy_with_logits用法及代碼示例
- Python tf.compat.v1.nn.depthwise_conv2d用法及代碼示例
- Python tf.compat.v1.nn.convolution用法及代碼示例
- Python tf.compat.v1.nn.conv2d用法及代碼示例
- Python tf.compat.v1.nn.safe_embedding_lookup_sparse用法及代碼示例
- Python tf.compat.v1.nn.nce_loss用法及代碼示例
- Python tf.compat.v1.nn.sampled_softmax_loss用法及代碼示例
- Python tf.compat.v1.nn.pool用法及代碼示例
- Python tf.compat.v1.nn.sigmoid_cross_entropy_with_logits用法及代碼示例
- Python tf.compat.v1.nn.ctc_loss用法及代碼示例
- Python tf.compat.v1.nn.rnn_cell.MultiRNNCell用法及代碼示例
- Python tf.compat.v1.nn.raw_rnn用法及代碼示例
- Python tf.compat.v1.nn.dilation2d用法及代碼示例
- Python tf.compat.v1.distributions.Multinomial.stddev用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.compat.v1.nn.embedding_lookup_sparse。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。