Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.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
Tensorflow 从keras的目录()加载带有图像数据集的图像_Tensorflow_Keras_Tensorflow Datasets - Fatal编程技术网

Tensorflow 从keras的目录()加载带有图像数据集的图像

Tensorflow 从keras的目录()加载带有图像数据集的图像,tensorflow,keras,tensorflow-datasets,Tensorflow,Keras,Tensorflow Datasets,图像文件夹具有以下结构: train/ ...batch0/ ......file00.jpg ......file01.jpg ...batch1/ ......file10.jpg ......file11.jpg 目录batch0和batch1的名称不是标签,标签位于单独的文件中。问题是将这些图像加载到数据集中。来自目录('/batch0')的函数image\u dataset\u,image\u dataset\u来自目录('/batch1')不起作用 错误: ValueError:

图像文件夹具有以下结构:

train/
...batch0/
......file00.jpg
......file01.jpg
...batch1/
......file10.jpg
......file11.jpg
目录
batch0
batch1
的名称不是标签,标签位于单独的文件中。问题是将这些图像加载到数据集中。来自目录('/batch0')的函数
image\u dataset\u
image\u dataset\u来自目录('/batch1')
不起作用

错误:

ValueError: Expected the lengths of labels to match the number of files in the target directory. len(labels) is 2 while we found 0 files in ../train/batch0/. 

看起来这应该在tf夜间版本中修复。 错误消息已更新为

如果希望获得仅包含图像(无标签)的数据集, 通过
标签\u模式=无

而不是通过
label=None
,而是通过
label\u mode=None

train/
...batch0/
......file00.jpg
......file01.jpg
...batch1/
......file10.jpg
......file11.jpg

import pathlib
data_dir = pathlib.Path('/content/train/')

import tensorflow as tf
batch_size = 16
img_height = 180
img_width = 180
train_ds = tf.keras.preprocessing.image_dataset_from_directory(
  data_dir,
  label_mode=None,
  validation_split=0.2,
  subset="training",
  seed=123,
  image_size=(img_height, img_width),
  batch_size=batch_size)
输出

Found 4 files belonging to 2 classes.
Using 3 files for training.

为什么要在文件夹中将图像分批处理?它抛出了什么错误?我有两个不成功的情况,一个成功。1)
image\u dataset\u from\u directory('../train/batch0')找到了属于0类的0个文件。
2)
labels\u list=[0,1]image\u dataset\u from\u dir目录(train\u dir,labels=labels\u list)值错误:标签的长度应与目标目录中的文件数匹配。len(labels)是2,而我们在../train/batch0/
3)中找到了0个文件成功的情况:
image\u dataset\u从目录('../train/')中找到了4个属于2个类的文件。
Ah您需要使用相对路径,与成功案例类似,但问题是,
image\u dataset\u from\u directory
假设目录是不同的类而不是批处理。对于
image\u dataset\u from\u directory
,可以通过参数
labels
打开/关闭它。标签:可以是“推断的”(标签从目录结构生成),也可以是与目录中找到的图像文件数相同大小的整数标签列表/元组。