Get example encoder function for the given spec.

Given a spec, returns an example encoder function. The example encoder function takes a nest of np.array feature values as input and returns a TF Example proto.

spec = { 'lidar': array_spec.ArraySpec((900,), np.float32), 'joint_positions': { 'arm': array_spec.ArraySpec((7,), np.float32), 'hand': array_spec.BoundedArraySpec((3, 3), np.int32, -1, 1) }, }

example_encoder = get_example_encoder(spec) serialized = example_encoder({ 'lidar': np.zeros((900,), np.float32), 'joint_positions': { 'arm': np.array([0.0, 1.57, 0.707, 0.2, 0.0, -1.57, 0.0], np.float32), 'hand': np.ones((3, 3), np.int32) }, })

The returned example encoder function requires that the feature nest passed has the shape and exact dtype specified in the spec. For example, it is an error to pass an array with np.float64 dtype where np.float32 is expected.

spec list/tuple/nest of ArraySpecs describing a single example.
compress_image Whether to compress image. It is assumed that any uint8 tensor of rank 3 with shape (w,h,c) is an image.
image_quality An optional int. Defaults to 95. Quality of the compression from 0 to 100 (higher is better and slower).


encoder(features_nest of np.arrays) -> tf.train.Example