將一批特征 ID 和值組合成一個 SparseTensor
。 (已棄用)
用法
tf.compat.v1.sparse_merge(
sp_ids, sp_values, vocab_size, name=None, already_sorted=False
)
參數
-
sp_ids
具有類型為int32
或int64
的values
屬性的單個SparseTensor
或此類SparseTensor
的 Python 列表或其列表。 -
sp_values
任何類型的SparseTensor
。 -
vocab_size
一個標量int64
張量(或 Python int),包含最後一維的新大小all(0 <= sp_ids.values < vocab_size)
。或所有i
的all(0 <= sp_ids[i].values < vocab_size[i])
列表。 -
name
返回張量的名稱前綴(可選) -
already_sorted
一個布爾值,用於指定sp_values
中的 per-batch 值是否已經排序。如果是這樣跳過排序,默認為 False(可選)。
返回
-
SparseTensor
緊湊地表示一批特征 id 和值,對於傳遞給期望這樣的函數很有用SparseTensor
。
拋出
-
TypeError
如果sp_values
不是SparseTensor
。或者,如果sp_ids
既不是SparseTensor
也不是其列表。或者如果vocab_size
不是Tensor
或 Python int 並且sp_ids
是SparseTensor
。或者,如果vocab_size
不是其中的一個或列表,而sp_ids
是一個列表。 -
ValueError
如果sp_ids
和vocab_size
是不同長度的列表。
警告:此函數已棄用。它將在未來的版本中刪除。更新說明:目前沒有類似的操作。
此函數最常見的用例發生在特征 ID 及其對應值存儲在磁盤上的Example
protos 中時。 parse_example
將返回一批 id 和一批值,該函數將它們連接成一個邏輯 SparseTensor
以用於 sparse_tensor_dense_matmul
, sparse_to_dense
等函數。
此函數返回的SparseTensor
具有以下屬性:
indices
等效於sp_ids.indices
,最後一個維度被丟棄並替換為sp_ids.values
。values
隻是sp_values.values
。- 如果
sp_ids.dense_shape = [D0, D1, ..., Dn, K]
,那麽output.shape = [D0, D1, ..., Dn, vocab_size]
。
例如,考慮以下特征向量:
vector1 = [-3, 0, 0, 0, 0, 0]
vector2 = [ 0, 1, 0, 4, 1, 0]
vector3 = [ 5, 0, 0, 9, 0, 0]
通過僅存儲非零元素和相應值的特征 ID(如果向量被視為矩陣,則為列號),這些可能會稀疏地存儲在以下示例原型中:
examples = [Example(features={
"ids":Feature(int64_list=Int64List(value=[0])),
"values":Feature(float_list=FloatList(value=[-3]))}),
Example(features={
"ids":Feature(int64_list=Int64List(value=[1, 4, 3])),
"values":Feature(float_list=FloatList(value=[1, 1, 4]))}),
Example(features={
"ids":Feature(int64_list=Int64List(value=[0, 3])),
"values":Feature(float_list=FloatList(value=[5, 9]))})]
在這些示例上調用parse_example 的結果將生成一個字典,其中包含"ids" 和"values" 的條目。將這兩個對象與 vocab_size=6 一起傳遞給此函數,將生成一個稀疏地表示所有三個實例的 SparseTensor
。即indices
屬性將包含特征矩陣中非零條目的坐標(第一維是矩陣中的行號,即batch內的索引,第二維是列號,即特征ID); values
將包含實際值。 shape
將是原始矩陣的形狀,即 (3, 6)。對於我們上麵的示例,輸出將等於:
SparseTensor(indices=[[0, 0], [1, 1], [1, 3], [1, 4], [2, 0], [2, 3]],
values=[-3, 1, 4, 1, 5, 9],
dense_shape=[3, 6])
通過簡單地提供sp_ids 和vocab_size 的列表,此方法推廣到higher-dimensions。在這種情況下,生成的 SparseTensor
具有以下屬性:
indices
等效於sp_ids[0].indices
,其中最後一個維度被丟棄並與sp_ids[0].values, sp_ids[1].values, ...
連接。values
隻是sp_values.values
。- 如果
sp_ids.dense_shape = [D0, D1, ..., Dn, K]
,那麽output.shape = [D0, D1, ..., Dn] + vocab_size
。
相關用法
- Python tf.compat.v1.sparse_to_dense用法及代碼示例
- Python tf.compat.v1.sparse_segment_sum用法及代碼示例
- Python tf.compat.v1.sparse_split用法及代碼示例
- Python tf.compat.v1.sparse_reduce_max用法及代碼示例
- Python tf.compat.v1.sparse_concat用法及代碼示例
- Python tf.compat.v1.sparse_placeholder用法及代碼示例
- Python tf.compat.v1.sparse_add用法及代碼示例
- Python tf.compat.v1.sparse_reduce_sum用法及代碼示例
- Python tf.compat.v1.space_to_batch用法及代碼示例
- Python tf.compat.v1.space_to_depth用法及代碼示例
- Python tf.compat.v1.strings.length用法及代碼示例
- Python tf.compat.v1.scatter_min用法及代碼示例
- Python tf.compat.v1.summary.merge用法及代碼示例
- Python tf.compat.v1.size用法及代碼示例
- Python tf.compat.v1.scatter_add用法及代碼示例
- Python tf.compat.v1.summary.FileWriter用法及代碼示例
- Python tf.compat.v1.scatter_div用法及代碼示例
- Python tf.compat.v1.string_split用法及代碼示例
- Python tf.compat.v1.squeeze用法及代碼示例
- Python tf.compat.v1.set_random_seed用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.compat.v1.sparse_merge。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。