将一批特征 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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。