TensorFlow加载垃圾图像数据集遇NotADirectoryError问题求助
解决Colab读取数据集的NotADirectoryError问题
问题根源
- 无法直接读取压缩包内文件:你直接用
dataset-resized.zip/dataset-resized/...的路径访问,load_img函数不支持直接读取压缩包中的文件,必须先解压数据集。 - 文件名后缀错误:代码里写的是
_jpg,但实际文件名后缀是.jpg(从报错信息cardboard1.jpg可以看出),少了英文句号。
解决步骤
1. 先解压数据集
在Colab的代码单元格中执行以下命令,将下载的压缩包解压到/content/目录下:
!unzip dataset-resized.zip -d /content/
2. 修正代码路径和文件名
修改后的完整代码如下,注意路径改为解压后的实际目录,同时修正文件名后缀:
import copy import numpy as np from PIL import Image import matplotlib.pyplot as plt import tensorflow as tf cardboard = [] for i in range(1, 404): temp = tf.keras.preprocessing.image.load_img( path="/content/dataset-resized/cardboard/cardboard"+str(i)+".jpg", grayscale=False, color_mode='rgb', target_size=(227,227)) X = np.array(temp) cardboard.append(X) cardboard = np.array(cardboard) cardboard = np.take(cardboard, np.random.permutation(cardboard.shape[0]), axis=0) print(cardboard.shape)
额外检查项
- 执行
!ls /content/dataset-resized/cardboard/命令,查看该目录下的文件名,确认编号范围和后缀是否和代码中的一致,避免出现文件名不匹配的情况。
内容的提问来源于stack exchange,提问作者serigne
相关产品推荐
相关产品推荐

