当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.sparse.SparseTensor用法及代码示例


表示稀疏张量。

用法

tf.sparse.SparseTensor(
    indices, values, dense_shape
)

参数

  • indices 形状为 [N, ndims] 的二维 int64 张量。
  • values 任何类型和形状的一维张量 [N]
  • dense_shape 形状为 [ndims] 的一维 int64 张量。

抛出

  • ValueError 如果 dense_shape 未知或包含未知元素(None 或 -1),则在构建 Eager SparseTensor 时。

属性

  • dense_shape int64 的一维张量,表示密集张量的形状。
  • dtype 该张量中元素的DType
  • graph Graph 包含索引、值和 dense_shape 张量。
  • indices 表示的密集张量中非零值的索引。
  • op 生成values 作为输出的Operation
  • shape 获取表示密集张量形状的TensorShape
  • values 表示的密集张量中的非零值。

TensorFlow 将稀疏张量表示为三个独立的密集张量:indices , valuesdense_shape。在 Python 中,三个张量被收集到一个SparseTensor 类中以便于使用。如果您有单独的 indices , valuesdense_shape 张量,请将它们包装在 SparseTensor 对象中,然后再传递给下面的操作。

具体来说,稀疏张量 SparseTensor(indices, values, dense_shape) 包含以下组件,其中 Nndims 分别是 SparseTensor 中的值数和维数:

  • indices :形状为 [N, ndims] 的二维 int64 张量,它指定稀疏张量中包含非零值的元素的索引(元素为 zero-indexed)。例如,indices=[[1,3], [2,4]] 指定索引为 [1,3] 和 [2,4] 的元素具有非零值。

  • values :任何类型和形状的一维张量 [N] ,它为 indices 中的每个元素提供值。例如,给定 indices=[[1,3], [2,4]] ,参数 values=[18, 3.6] 指定稀疏张量的元素 [1,3] 的值为 18,张量的元素 [2,4] 的值为 3.6。

  • dense_shape :形状为 [ndims] 的一维 int64 张量,它指定稀疏张量的 dense_shape。获取一个列表,指示每个维度中的元素数量。例如,dense_shape=[3,6] 指定二维 3x6 张量,dense_shape=[2,3,4] 指定三维 2x3x4 张量,dense_shape=[9] 指定具有 9 个元素的一维张量。

对应的稠密张量满足:

dense.shape = dense_shape
dense[tuple(indices[i])] = values[i]

按照惯例,indices 应该按行优先顺序(或等效的元组 indices[i] 上的字典顺序)排序。在构造 SparseTensor 对象时不会强制执行此操作,但大多数操作都假定正确排序。如果稀疏张量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]]

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.sparse.SparseTensor。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。