tfds.features.Sequence

View source on GitHub

Class Sequence

Composite FeatureConnector for a dict where each value is a list.

Sequence correspond to sequence of tfds.features.FeatureConnector. At generation time, a list for each of the sequence element is given. The output of tf.data.Dataset will batch all the elements of the sequence together.

If the length of the sequence is static and known in advance, it should be specified in the constructor using the length param.

Note that Sequence does not support features which are of type tf.io.FixedLenSequenceFeature.

Example:

At construction time:

tfds.features.Sequence(tfds.features.Image(), length=NB_FRAME)

or:

tfds.features.Sequence({
    'frame': tfds.features.Image(shape=(64, 64, 3))
    'action': tfds.features.ClassLabel(['up', 'down', 'left', 'right'])
}, length=NB_FRAME)

During data generation:

yield {
    'frame': np.ones(shape=(NB_FRAME, 64, 64, 3)),
    'action': ['left', 'left', 'up', ...],
}

Tensor returned by .as_dataset():

{
    'frame': tf.Tensor(shape=(NB_FRAME, 64, 64, 3), dtype=tf.uint8),
    'action': tf.Tensor(shape=(NB_FRAME,), dtype=tf.int64),
}

At generation time, you can specify a list of features dict, a dict of list values or a stacked numpy array. The lists will automatically be distributed into their corresponding FeatureConnector.

__init__

View source

__init__(
    feature,
    length=None,
    **kwargs
)

Construct a sequence dict.

Args:

  • feature: dict, the features to wrap
  • length: int, length of the sequence if static and known in advance
  • **kwargs: dict, constructor kwargs of tfds.features.FeaturesDict

Properties

dtype

Return the dtype (or dict of dtype) of this FeatureConnector.

feature

The inner feature.

shape

Return the shape (or dict of shape) of this FeatureConnector.

Methods

__getitem__

View source

__getitem__(key)

Convenience method to access the underlying features.

decode_example

decode_example(
    *args,
    **kwargs
)

Decode the serialize examples.

Args:

  • serialized_example: Nested dict of tf.Tensor
  • decoders: Nested dict of Decoder objects which allow to customize the decoding. The structure should match the feature structure, but only customized feature keys need to be present. See the guide for more info.

Returns:

  • example: Nested dict containing the decoded nested examples.

encode_example

View source

encode_example(example_dict)

Encode the feature dict into tf-example compatible input.

The input example_data can be anything that the user passed at data generation. For example:

For features:

features={
    'image': tfds.features.Image(),
    'custom_feature': tfds.features.CustomFeature(),
}

At data generation (in _generate_examples), if the user yields:

yield {
    'image': 'path/to/img.png',
    'custom_feature': [123, 'str', lambda x: x+1]
}

Then:

Args:

  • example_data: Value or dictionary of values to convert into tf-example compatible data.

Returns:

  • tfexample_data: Data or dictionary of data to write as tf-example. Data can be a list or numpy array. Note that numpy arrays are flattened so it's the feature connector responsibility to reshape them in decode_example(). Note that tf.train.Example only supports int64, float32 and string so the data returned here should be integer, float or string. User type can be restored in decode_example().

get_serialized_info

View source

get_serialized_info()

See base class for details.

get_tensor_info

View source

get_tensor_info()

See base class for details.

load_metadata

View source

load_metadata(
    *args,
    **kwargs
)

See base class for details.

save_metadata

View source

save_metadata(
    *args,
    **kwargs
)

See base class for details.