Ошибка Tensorflow: неподдерживаемое возвращаемое значение из функции, переданной в Dataset.map () - PullRequest
0 голосов
/ 23 сентября 2019

Я использую tf.data.Dataset для input_fn в коде TensorFlow.Мне нужно читать все каналы отдельно, так как они хранятся в разных файлах.В приведенном ниже коде показана функция загрузки и обработки.

def load_images_as_tensor(image_paths, dtype=np.uint8):
    n_channels = 6
    image_paths = image_paths
    data = np.ndarray(shape=(512, 512, n_channels), dtype=dtype)
    for ix, img_path in enumerate(image_paths):
        data[:, :, ix] = load_image(img_path)
    return(data)

def process(img, pixel_stats=GLOBAL_PIXEL_STATS, use_bfloat16 = True):
    if pixel_stats is not None:
        mean, std = pixel_stats
        img = (tf.cast(img, tf.float32) - mean) / std
    if use_bfloat16:
        img = tf.image.convert_image_dtype(img, dtype=tf.bfloat16)

    img = img.set_shape([512, 512, 6])
    return(img)

def input_fn(params):
  data = tf.data.Dataset.from_tensor_slices(tmp2)
  data = data.map(lambda x: tf.py_func(load_images_as_tensor,[x], tf.uint8))
  data = data.map(lambda x: process(x, GLOBAL_PIXEL_STATS, True))
  return(data)

Из-за использования tf.py_func TensorFlow не может получить форму ввода.Пройдя через проблему TensorFlow на github, я подумал, что указание фигуры вручную исправит ошибку.Я все еще получаю сообщение об ошибке

TypeError: Неподдерживаемое возвращаемое значение из функции, переданной в Dataset.map (): Нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...