阅读(8.4k) 书签 (0)

TensorFlow函数:tf.SparseFeature

2018-01-30 10:43 更新

tf.SparseFeature 函数

SparseFeature 类

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

请参阅指南:输入和读取器>协议缓冲区示例

从一个Example中分析稀疏输入功能的配置.

请注意,最好使用VarLenFeature(可能与SequenceExample组合)来解析SparseTensors,而不是SparseFeature,由于其简单性.

这将通过解析一个带有SparseFeature配置的一个Example来密切地模仿将获得的SparseTensor,一个SparseFeature包含如下部分:

  • value_key:在Example中Feature的键的名称,其解析Tensor将是结果SparseTensor.values.
  • index_key:一个名称的列表;一个用于在所产生的SparseTensor中的每个维度,其indices[i][dim]指示的dim维度中的第 i 值的位置将等同于Example中具有键名为index_key [dim]的Feature中的第 i 值.
  • 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 特征的匹配.要代表 SparseTensors 与 dense_shape 等级高于1一个长度等级名单应该使用.value_key: 值功能的名称.基础特征的类型必须是 dtype 的, 并且它的长度必须与所有 index_keys 的特征相匹配.dtype: value_key 特征的数据类型.大小: 一个 Python int 或它的列表, 它指定稠密的形状.应该是一个列表, 如果和仅当 index_key 是一个列表.在这种情况下, 列表必须等于 index_key 的长度.每个条目 i 所有值的 index_key [i] 功能必须在 [0, 大小 [i]).already_sorted: 一个 Python 布尔值, 用于指定是否已按照 value_key 的索引位置对其进行排序.如果是这样跳过排序.默认为 False (可选).

  • index_key:单个字符串名称或索引功能的字符串名称列表.对于每个键,基础功能的类型必须是int64,并且其长度必须始终与 value_key 功能的长度相匹配.为了表示带有dense_shape的rank大于1的SparseTensor s,长度为rank的列表应该被使用.
  • value_key:值功能的名称.基础功能的类型必须是dtype,其长度必须始终与所有index_key的特征的相匹配.
  • dtype:index_key功能的数据类型.
  • size:指定稠密形状的Python int或其列表.应该是一个列表,当且仅当index_key是一个列表.在这种情况下,列表必须等于index_key的长度.每个项 i 中的index_key[i]功能中的所有值都必须在[0, size[i]).
  • already_sorted:一个Python布尔值,用来指定值value_key是否已经按索引位置排序.如果这样则跳过排序;默认为false.

属性

  • already_sorted
    字段编号4的别名
  • dtype
    字段编号2的别名
  • index_key
    0字段编号0的别名
  • size
    字段编号3的别名
  • value_key
    字段编号1的别名

方法

__new__

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