You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Keras加载图像时出现“No such file or directory”错误求助

解决Keras ImageDataGenerator保存图像时的FileNotFoundError问题

先看你报错里的路径:/Users/Steven/data/image_data/preview\\test_0_2149.png —— 这里同时出现了正斜杠/和反斜杠\\,明显是路径格式混乱导致的问题。结合错误里的Anaconda路径C:\Users\Steven\...,能看出来你是在Windows系统上运行代码,但却写了类Unix系统的路径(/Users/...),PIL在保存图像时自动使用了Windows的路径分隔符,两种格式混在一起就导致系统找不到正确的目录了。

另外你说手动创建了/User/Steven/data/image_data/preview,但Windows的用户目录实际是C:\Users\Steven,这个路径本身就不符合Windows的格式,系统自然找不到。

给你两个关键的解决步骤:

1. 用Python的os.path模块构建跨平台路径

这个模块会自动根据你的系统选择正确的路径分隔符,彻底避免手动写路径的错误。

2. 自动创建目标目录,避免手动创建的疏漏

用os.makedirs可以自动创建目录,就算目录已经存在也不会报错,比手动创建更可靠。

修改后的完整代码如下:

import os
from keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_img

# 构建Windows系统下的正确路径
base_dir = os.path.join('C:', 'Users', 'Steven', 'data', 'image_data')
preview_dir = os.path.join(base_dir, 'preview')

# 自动创建preview目录(如果不存在的话)
os.makedirs(preview_dir, exist_ok=True)

datagen = ImageDataGenerator(
    rotation_range=40,
    width_shift_range=0.2,
    height_shift_range=0.2,
    rescale=1./255,
    shear_range=0.2,
    zoom_range=0.2,
    horizontal_flip=True,
    fill_mode='nearest')

# 加载图像的路径也用os.path.join构建
img_path = os.path.join(base_dir, 'test_00000.png')
img = load_img(img_path)
x = img_to_array(img)
x = x.reshape((1,) + x.shape)

i = 0
for batch in datagen.flow(x, batch_size=1,
                          save_to_dir=preview_dir,
                          save_prefix='test',
                          save_format='png'):
    i += 1
    if i > 20:
        break

运行这段代码后,应该就能正常生成并保存变换后的图像了。

内容的提问来源于stack exchange,提问作者Steven Chan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:28:39