Прочитайте изображение и маску (для проблемы сегментации) в Tensorflow-2.0, используя tf.data - PullRequest
0 голосов
/ 01 октября 2019

Я пытаюсь прочитать набор данных изображения для проблемы сегментации (1-класс), перейдя по этой ссылке. Моя основная папка содержит две папки: (а) img (б) mask. img содержит образцы изображений, а mask содержит соответствующие маски. Мой подход состоял в том, чтобы сгенерировать путь для изображения, а затем изменить путь строки (т.е. img-> mask). Я изменил предоставленный код здесь , который теперь выглядит как:

def process_path(file_path):
  file_path_str = str(file_path)
  file_path_mask = file_path_str.replace('img', 'mask') 
  # load the raw data from the file as a string
  img = tf.io.read_file(file_path)
  img = decode_img(img)

  mask = tf.io.read_file(str(file_path_mask))
  mask = decode_mask(mask)
  return img, mask

Однако, когда я пытаюсь увидеть размер моих образцов, используя:

for image, mask in labeled_ds.take(1):
  print("Image shape: ", image.numpy().shape)
  print("Mask shape: ", mask.numpy().shape)

Я получаю следующую ошибку:

InvalidArgumentError: NewRandomAccessFile failed to Create/Open: Tensor("arg0:0", shape=(), dtype=string) : The filename, directory name, or volume label syntax is incorrect. ; Unknown error [[{{node ReadFile_1}}]] [Op:IteratorGetNextSync]

Вопрос: Есть ли какие-либо предложения о том, как прочитать изображение и маску из указанной папки без вышеуказанной ошибки?

1 Ответ

0 голосов
/ 02 октября 2019

Мы можем использовать tf.regex.replace для переименования строки. Таким образом, вместо замены строки Python используйте: file_path_mask = tf.regex_replace(file_path, "img", "mask"). Для TF 2.0 используйте tf.strings.regex_replace.

...