Ejemplo n.º 1
0
def sample_from_instances(inputs, outputs, num_samples):
    """Samples equally from instances."""
    input_tensors = {}
    output_tensors = {}
    input_tensors[
        standard_fields.InputDataFields.object_instance_id_image] = tf.reshape(
            inputs[standard_fields.InputDataFields.object_instance_id_image],
            [-1])
    input_tensors[standard_fields.InputDataFields.
                  object_instance_id_image] = isu.map_labels_to_0_to_n(
                      input_tensors[standard_fields.InputDataFields.
                                    object_instance_id_image])
    seed_indices = isu.randomly_select_n_points_per_segment(
        labels=input_tensors[
            standard_fields.InputDataFields.object_instance_id_image],
        num_points=num_samples,
        include_ignore_label=False)
    seed_indices = tf.reshape(seed_indices, [-1])
    for field in standard_fields.get_input_image_fields():
        if field in inputs:
            input_tensors[field] = tf.gather(inputs[field], seed_indices)
    for field in standard_fields.get_output_image_fields():
        if field in outputs:
            output_tensors[field] = tf.gather(outputs[field], seed_indices)
    return input_tensors, output_tensors
Ejemplo n.º 2
0
def get_batch_size_1_output_images(outputs, b):
    """Returns output dictionary containing tensors with batch size of 1.

  Note that this function only applies its example selection to the image
  tensors.

  Args:
    outputs: A dictionary of tf.Tensors with the network output.
    b: Example index in the batch.

  Returns:
    outputs_1:  A dictionary of tf.Tensors with batch size of one.
  """
    b_1_outputs = {}
    for field in standard_fields.get_output_image_fields():
        if field in outputs:
            b_1_outputs[field] = outputs[field][b:b + 1, Ellipsis]
    return b_1_outputs