阅读(6.1k) 书签 (0)

TensorFlow函数教程:tf.io.SparseFeature

2019-02-26 16:51 更新

tf.io.SparseFeature函数

类 SparseFeature

别名:

  • 类 tf.SparseFeature
  • 类 tf.io.SparseFeature

定义在:tensorflow/python/ops/parsing_ops.py。

用于解析Example的稀疏输入要素的配置。

注意,最好使用VarLenFeature(可能与SequenceExample结合使用),以便解析SparseTensors而不是SparseFeature,因为它的简单性。

通过使用SparseFeature配置解析Example获得的非常相似的SparseTensor,SparseFeature包含:

  • value_key:Example中Feature的键名称,解析Tensor将是生成的sparsetensor. value。
  • index_key:一个名称列表 - 一个用于生成的SparseTensor中的每个维度,其indices[i][dim]表示dim维度中第i个值的位置将等于Feature中的第i个值,并在Example中命名为index_key [dim]。
  • size:生成的SparseTensor.dense_shape的整数列表。

例如,我们可以表示以下2D SparseTensor

SparseTensor(indices=[[3, 1], [20, 0]],
             values=[0.5, -1.0]
             dense_shape=[100, 3])

用Example输入原型:

features {
  feature { key: "val" value { float_list { value: [ 0.5, -1.0 ] } } }
  feature { key: "ix0" value { int64_list { value: [ 3, 20 ] } } }
  feature { key: "ix1" value { int64_list { value: [ 1, 0 ] } } }
}

SparseFeature配置为2个 index_key:

SparseFeature(index_key=["ix0", "ix1"],
              value_key="val",
              dtype=tf.float32,
              size=[100, 3])

字段:

  • index_key:单个字符串名称或索引功能的字符串名称列表。对于每个键,基础特性的类型必须是int64,并且其长度必须始终与value_key特性的长度匹配。若要表示具有rank大于1的dense_shape的SparseTensor,应使用长度rank列表。
  • value_key:值特性的名称。底层特性的类型必须是dtype,并且其长度必须始终与所有index_keys特性的长度相匹配。
  • dtype:value_key特性的数据类型。
  • size:Python int或其列表,指定密集形状。当且仅当index_key是列表时,应该是列表。在这种情况下,列表必须等于index_key的长度。index_key [i]特性中的每个条目i的所有值都必须位于[0, size[i])中。
  • already_sorted:一个Python布尔值,用于指定value_key中的值是否已按其索引位置排序。如果是,请跳过排序。默认为False(可选)。

__new__

@staticmethod
__new__(
    cls,
    index_key,
    value_key,
    dtype,
    size,
    already_sorted=False
)

创建SparseFeature(index_key, value_key, dtype, size, already_sorted)的新实例。

属性

index_key

value_key

dtype

size

already_sorted