生成图像数据集时遭遇FileNotFoundError错误求助
解决FileNotFoundError及数据集生成问题
1. 修正路径错误
报错核心是路径指向错误,先确认train文件夹的实际位置:
- 在代码开头添加以下代码,打印当前工作目录并验证目标路径:
import os print("当前工作目录:", os.getcwd()) print("目标路径内容:", os.listdir("/output/kaggle/working") if os.path.exists("/output/kaggle/working") else "路径不存在") - 将
data_dir改为正确的绝对路径,避免相对路径的层级混淆:
如果是在Kaggle官方环境中,默认工作目录为data_dir = '/output/kaggle/working/train'/kaggle/working,需确认数据是否复制到了/kaggle/working/train,此时路径改为'/kaggle/working/train'即可。
2. 调整数据集加载逻辑
你已经手动拆分了train和validation独立文件夹,无需再使用validation_split和subset参数,应分别加载训练集与验证集:
import tensorflow as tf img_height, img_width = 180, 180 batch_size = 32 # 加载训练集 train_ds = tf.keras.preprocessing.image_dataset_from_directory( '/output/kaggle/working/train', label_mode="categorical", image_size=(img_height, img_width), batch_size=batch_size ) # 加载验证集 val_ds = tf.keras.preprocessing.image_dataset_from_directory( '/output/kaggle/working/validation', label_mode="categorical", image_size=(img_height, img_width), batch_size=batch_size )
额外注意事项
- 确保
train和validation文件夹结构符合要求:每个类别对应独立子文件夹,例如train/cat/xxx.jpg、train/dog/xxx.jpg,这样image_dataset_from_directory才能自动识别类别标签。
内容的提问来源于stack exchange,提问作者mohamed bett
相关产品推荐
相关产品推荐

