Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python “为什么?”;tf.data.Dataset.from“U张量”U切片;打印输出中图像的所有路径?_Python_Tensorflow_Tensorflow Datasets - Fatal编程技术网

Python “为什么?”;tf.data.Dataset.from“U张量”U切片;打印输出中图像的所有路径?

Python “为什么?”;tf.data.Dataset.from“U张量”U切片;打印输出中图像的所有路径?,python,tensorflow,tensorflow-datasets,Python,Tensorflow,Tensorflow Datasets,我正在写一个代码来读取Tensorflow中的图像。我使用教程来做这件事。问题是当我使用这个命令时:tf.data.Dataset.from_tensor_切片((所有图像路径,所有图像标签)),整个图像路径显示在输出控制台中 这是我正在使用的代码: def get_image_info(dir_path, file_url=None, file_name=None, untar=True): if file_url != None: dir_path = tf.kera

我正在写一个代码来读取Tensorflow中的图像。我使用教程来做这件事。问题是当我使用这个命令时:
tf.data.Dataset.from_tensor_切片((所有图像路径,所有图像标签))
,整个图像路径显示在输出控制台中

这是我正在使用的代码:

def get_image_info(dir_path, file_url=None, file_name=None, untar=True):
    if file_url != None:
        dir_path = tf.keras.utils.get_file(fname=file_name, origin=file_url, untar=untar)

    data_root = pathlib.Path(dir_path)
    all_image_paths = list(data_root.glob('*/*'))
    label_names = sorted(item.name for item in data_root.glob('*/') if item.is_dir())
    label_dict = dict((name, index) for index, name in enumerate(label_names))
    all_image_labels = [label_dict[pathlib.Path(path).parent.name] for path in all_image_paths]

    return data_root, label_dict, all_image_paths, all_image_labels

def load_image_dataset(dir_path, file_url=None, file_name=None, untar=True):
    def load_and_preprocess_from_path_label(path, label):
        return load_and_preprocess_image(path), label

    data_root, label_dict, all_image_paths, all_image_labels = get_image_info(dir_path, file_url, file_name, untar)
    image_label_ds = tf.data.Dataset.from_tensor_slices((all_image_paths, all_image_labels))
    # image_label_ds = ds.map(load_and_preprocess_from_path_label)

    return image_label_ds, label_dict

image_label_ds, label_dict= load_image_dataset('', 'https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz', 'flower_photos')
这是我输出的一部分:

, WindowsPath('C:/Users/hajba/.keras/datasets/flower_photos/tulips/8838914676_8ef4db7f50_n.jpg'), WindowsPath('C:/Users/hajba/.keras/datasets/flower_photos/tulips/8838975946_f54194894e_m.jpg'), WindowsPath('C:/Users/hajba/.keras/datasets/flower_photos/tulips/8838983024_5c1a767878_n.jpg'), WindowsPath('C:/Users/hajba/.keras/datasets/flower_photos/tulips/8892851067_79242a7362_n.jpg'), WindowsPath('C:/Users/hajba/.keras/datasets/flower_photos/tulips/8904780994_8867d64155_n.jpg'), WindowsPath('C:/Users/hajba/.keras/datasets/flower_photos/tulips/8908062479_449200a1b4.jpg'), WindowsPath('C:/Users/hajba/.keras/datasets/flower_photos/tulips/8908097235_c3e746d36e_n.jpg'), WindowsPath('C:/Users/hajba/.keras/datasets/flower_photos/tulips/9019694597_2d3bbedb17.jpg'), WindowsPath('C:/Users/hajba/.keras/datasets/flower_photos/tulips/9030467406_05e93ff171_n.jpg'), WindowsPath('C:/Users/hajba/.keras/datasets/flower_photos/tulips/9048307967_40a164a459_m.jpg'), WindowsPath('C:/Users/hajba/.keras/datasets/flower_photos/tulips/924782410_94ed7913ca_m.jpg'), WindowsPath('C:/Users/hajba/.keras/datasets/flower_photos/tulips/9378657435_89fabf13c9_n.jpg'), WindowsPath('C:/Users/hajba/.keras/datasets/flower_photos/tulips/9444202147_405290415b_n.jpg'), WindowsPath('C:/Users/hajba/.keras/datasets/flower_photos/tulips/9446982168_06c4d71da3_n.jpg'), WindowsPath('C:/Users/hajba/.keras/datasets/flower_photos/tulips/9831362123_5aac525a99_n.jpg'), WindowsPath('C:/Users/hajba/.keras/datasets/flower_photos/tulips/9870557734_88eb3b9e3b_n.jpg'), WindowsPath('C:/Users/hajba/.keras/datasets/flower_photos/tulips/9947374414_fdf1d0861c_n.jpg'), WindowsPath('C:/Users/hajba/.keras/datasets/flower_photos/tulips/9947385346_3a8cacea02_n.jpg'), WindowsPath('C:/Users/hajba/.keras/datasets/flower_photos/tulips/9976515506_d496c5e72c.jpg')]. Consider casting elements to a supported type.

对于那些面临这个问题的人:这是一种错误,Tensorflow试图在输出中显示图像路径张量。我使用windows操作系统,为了解决此错误,我使用以下代码行将路径类型(WindowsPath)转换为字符串:

all_image_paths_str = list(map(lambda x: str(x), all_image_paths))
然后使用它生成输出数据集张量:

image_label_ds = tf.data.Dataset.from_tensor_slices((all_image_paths_str, all_image_labels))