View source on GitHub |
Configuration for parsing a sparse input feature from an Example
.
tf.io.SparseFeature(
index_key, value_key, dtype, size, already_sorted=False
)
Note, preferably use VarLenFeature
(possibly in combination with a
SequenceExample
) in order to parse out SparseTensor
s instead of
SparseFeature
due to its simplicity.
Closely mimicking the SparseTensor
that will be obtained by parsing an
Example
with a SparseFeature
config, a SparseFeature
contains a
value_key
: The name of key for aFeature
in theExample
whose parsedTensor
will be the resultingSparseTensor.values
.index_key
: A list of names - one for each dimension in the resultingSparseTensor
whoseindices[i][dim]
indicating the position of thei
-th value in thedim
dimension will be equal to thei
-th value in the Feature with key namedindex_key[dim]
in theExample
.size
: A list of ints for the resultingSparseTensor.dense_shape
.
For example, we can represent the following 2D SparseTensor
SparseTensor(indices=[[3, 1], [20, 0]],
values=[0.5, -1.0]
dense_shape=[100, 3])
with an Example
input proto
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 ] } } }
}
and SparseFeature
config with 2 index_key
s
SparseFeature(index_key=["ix0", "ix1"],
value_key="val",
dtype=tf.float32,
size=[100, 3])