как создать PrefetchDataset с изображениями из двух каталогов?

#python #tensorflow #image-segmentation

#python #тензорный поток #сегментация изображений

Вопрос:

привет, я пытаюсь следовать этому руководству

https://www.tensorflow.org/tutorials/images/segmentation#define_the_model

но, используя мои собственные данные (которые работают не очень хорошо), предположим, у меня есть путь к маске (target_dir) и исходным (traind_dir) изображениям, как я могу создать PrefetchDataset следующим образом:

 [1]:train_dataset.__dict__
[1]: {'_input_dataset': <RepeatDataset shapes: ((None, 128, 128, 3), (None, 128, 128, 1)), types: (tf.float32, tf.float32)>,
 '_buffer_size': <tf.Tensor: shape=(), dtype=int64, numpy=-1>,
 '_variant_tensor_attr': <tf.Tensor: shape=(), dtype=variant, numpy=<unprintable>>,
 '_self_setattr_tracking': True,
 '_self_unconditional_checkpoint_dependencies': [TrackableReference(name='_variant_tracker', ref=<tensorflow.python.data.ops.dataset_ops._VariantTracker object at 0x7f36fc7db320>)],
 '_self_unconditional_dependency_names': {'_variant_tracker': <tensorflow.python.data.ops.dataset_ops._VariantTracker at 0x7f36fc7db320>},
 '_self_unconditional_deferred_dependencies': {},
 '_self_update_uid': -1,
 '_self_name_based_restores': set(),
 '_self_saveable_object_factories': {},
 '_variant_tracker': <tensorflow.python.data.ops.dataset_ops._VariantTracker at 0x7f36fc7db320>,
 '_graph_attr': <tensorflow.python.framework.ops.Graph at 0x7f37279a32e8>,
 '_options_attr': <tensorflow.python.data.ops.dataset_ops.Options at 0x7f36fc7db710>}
  

мои собственные файлы .jpg хранятся в traind_dir и target_dir?

набор данных train_dataset там, получен из набора данных oxford_iiit_pet и после tensorflow.org учебное пособие

редактировать: в моих попытках я получил это, если я использую

 getattr(dataset["train"],"_input_dataset")
  

я получаю

 <ParallelMapDataset shapes: {file_name: (), image: (None, None, 3), label: (), segmentation_mask: (None, None, 1), species: ()}, types: {file_name: tf.string, image: tf.uint8, label: tf.int64, segmentation_mask: tf.uint8, species: tf.int64}>
  

итак, я погуглил ParallelMapDataset, я обнаружил, что могу создать этот набор данных с помощью

 tf.raw_ops.ParallelMapDataset(
    input_dataset, other_arguments, num_parallel_calls, f, output_types, output_shapes
)
  

но у меня есть несколько вопросов

что должно быть в other_arguments? список tf.float32?

для сопряжения входных и целевых изображений какие f и num_parallel_calls я должен использовать?

Комментарии:

1. f является ли оформленная функция такой @tf.function tensorflow.org/guide/function

2. Сначала преобразуйте свой набор данных в формат tfds, следуя руководству Tensorflow . Затем используйте приведенный здесь пример. Спасибо!