目录
稀疏张量表示。
class SparseTensor:表示一个稀疏张量。
张量流将稀疏张量表示为三个独立的稠密张量:指标、值和dense_shape。在Python中,为了便于使用,这三个张量被收集到一个SparseTensor类中。如果有单独的指标、值和dense_shape张量,在传递到下面的ops之前,将它们包装在sparse张量对象中。具体来说,稀疏张量稀疏张量(指标、值、dense_shape)由以下分量组成,其中N和ndims分别是稀疏张量中的值和维数:
indices
:一个dense_shape [N, ndims]的二维int64张量,它指定了稀疏张量中包含非零值的元素的索引(元素是零索引的)。例如,indexes =[[1,3],[2,4]]指定索引为[1,3]和[2,4]的元素具有非零值。indices
:任何类型的一维张量和dense_shape [N],它为索引中的每个元素提供值。例如,给定指标=[[1,3],[2,4]],参数值=[18,3.6]指定稀疏张量的元素[1,3]取值为18,张量的元素[2,4]取值为3.6。对应的稠密张量满足:
- dense.shape = dense_shape
- dense[tuple(indices[i])] = values[i]
按照惯例,索引应该按行主顺序排序(或者等价于元组索引的字典顺序[i])。当构造稀疏张量对象时,这并不是强制的,但是大多数ops都假定正确的顺序。如果稀疏张量st的序错了,可以通过调用tf.sparse.reorder(st)得到一个固定的版本。例子:稀疏张量
SparseTensor(indices=[[0, 0], [1, 2]], values=[1, 2], dense_shape=[3, 4])
代表密集张量:
- [[1, 0, 0, 0]
- [0, 0, 2, 0]
- [0, 0, 0, 0]]
__init__
- __init__(
- indices,
- values,
- dense_shape
- )
创建一个SparseTensor。
参数:
indices
:一个二维int64张量的形状[N, ndims]。values
:任意类型和形状的一维张量[N]。dense_shape
dtype
graph
indices
返回值:
op
shape
返回值:
value
返回值:
__div__
- __div__(
- sp_x,
- y
- )
分量方向上把稀疏张量除以稠密张量。限制:此Op只向稀疏端广播稠密端,而不向相反方向广播。
参数:
dense
:张量。必须具有与sp_values相同的类型。r d。稠密张量操作数。返回值:
__mul__
- __mul__(
- sp_x,
- y
- )
分量方向上,稀疏张量乘以稠密张量。稀疏张量中隐式零元素对应的输出位置为零(即,不会占用存储空间),而不管稠密张量的内容(即使它是+/-INF并且INF*0 == NaN)。限制:此Op只向稀疏端广播稠密端,而不向相反方向广播。
参数:
dense
:张量。必须具有与sp_values相同的类型。r d。稠密张量操作数。返回值:
__truediv__
- __truediv__(
- sp_x,
- y
- )
'sp_t / dense_t'的内部帮助函数。
consumers
consumers()
eval
- eval(
- feed_dict=None,
- session=None
- )
在一个会话中计算这个稀疏张量。调用这个方法将执行前面的所有操作,这些操作生成生成这个张量的操作所需的输入。注意:在调用SparseTensor.eval()之前,它的图形必须在一个会话中启动,并且要么默认会话必须可用,要么必须显式指定会话。
参数:
session
:(可选)用来计算这个稀疏张量的过程。如果没有,则使用默认会话。返回值:
from_value
- @classmethod
- from_value(
- cls,
- sparse_tensor_value
- )
get_shape
get_shape()
得到表示稠密张量形状的张量形状。
返回值:
add(...): 加上两个张量,至少其中一个是稀疏张量。
concat(...): 沿指定维连接稀疏张量列表。(弃用参数)
cross(...): 从稀疏和稠密张量列表生成稀疏交叉。
cross_hashed(...): 从稀疏和稠密张量列表生成散列稀疏交叉。
expand_dims(...): 将维数1插入张量的形状中。
eye(...): 创建一个沿着对角线的二维稀疏张量。
fill_empty_rows(...): 用默认值填充输入二维稀疏张量中的空行。
from_dense(...): 将稠密张量转化为稀疏张量。
mask(...): 掩码indexedslice的元素。
maximum(...): 返回两个稀疏量中元素的最大值。
minimum(...): 返回两个稀疏量的元素明智的最小值。
reduce_max(...): 计算稀疏张量维上元素的最大值。
reduce_sum(...): 计算稀疏张量各维元素的和。
reorder(...): 将稀疏张量重新排序为正则的行主顺序。
reset_shape(...): 重置指标和值不变的稀疏张量的形状。
reshape(...): 重新构造稀疏张量,以新的密集形状表示值。
retain(...): 在稀疏张量中保留指定的非空值。
segment_mean(...): 沿着张量的稀疏段计算平均值。
segment_sqrt_n(...): 计算张量沿稀疏段的和除以根号N。
segment_sum(...): 沿着张量的稀疏段计算和。
slice(...): 根据起始点和大小切片一个稀疏张量。
softmax(...): 将softmax应用于一个批处理的N-D稀疏张量。
sparse_dense_matmul(...): 乘以稀疏张量(秩2)A由稠密矩阵B表示。
split(...): 沿着轴将稀疏张量分解为num_split张量。
to_dense(...): 将稀疏张量转换为稠密张量。
to_indicator(...): 将ids的稀疏张量转换为稠密的bool指示张量。
transpose(...): 转置一个SparseTensor。