tfds.features.FeaturesDict

Class FeaturesDict

Composite FeatureConnector; each feature in dict has its own connector.

Inherits From: FeatureConnector

Defined in core/features/feature.py.

The encode/decode method of the spec feature will recursively encode/decode every sub-connector given on the constructor. Other features can inherit from this class and call super() in order to get nested container.

Example:

For DatasetInfo:

features = tfds.features.FeaturesDict({
    'input': tfds.features.Image(),
    'output': tf.int32,
})

At generation time:

for image, label in generate_examples:
  yield {
      'input': image,
      'output': label
  }

At tf.data.Dataset() time:

for example in tfds.load(...):
  tf_input = example['input']
  tf_output = example['output']

For nested features, the FeaturesDict will internally flatten the keys for the features and the conversion to tf.train.Example. Indeed, the tf.train.Example proto do not support nested feature, while tf.data.Dataset does. But internal transformation should be invisible to the user.

Example:

tfds.features.FeaturesDict({
    'input': tf.int32,
    'target': {
        'height': tf.int32,
        'width': tf.int32,
    },
})

Will internally store the data as:

{
    'input': tf.io.FixedLenFeature(shape=(), dtype=tf.int32),
    'target/height': tf.io.FixedLenFeature(shape=(), dtype=tf.int32),
    'target/width': tf.io.FixedLenFeature(shape=(), dtype=tf.int32),
}

__init__

__init__(feature_dict)

Initialize the features.

Args:

feature_dict (dict): Dictionary containing the feature connectors of a example. The keys should correspond to the data dict as returned by tf.data.Dataset(). Types (tf.int32,...) and dicts will automatically be converted into FeatureConnector.

Raises:

  • ValueError: If one of the given features is not recognized

Properties

dtype

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

serialized_keys

List of the flattened feature keys after serialization.

shape

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

Methods

__getitem__

__getitem__(key)

Return the feature associated with the key.

__iter__

__iter__()

__len__

__len__()

decode_example

decode_example(tfexample_dict)

See base class for details.

encode_example

encode_example(example_dict)

See base class for details.

get_serialized_info

get_serialized_info()

See base class for details.

get_tensor_info

get_tensor_info()

See base class for details.

items

items()

keys

keys()

load_metadata

load_metadata(
    data_dir,
    feature_name=None
)

See base class for details.

save_metadata

save_metadata(
    data_dir,
    feature_name=None
)

See base class for details.

values

values()