Python图像导入异常:猫狗数据集在Google Colab中无法识别
排查猫狗图像数据集在Colab中识别失败的问题
问题根源:文件路径错误
你的遍历脚本中,listdir指向的是狗图像的实际目录/content/dogcatdata/train/dogcatdata/train/dog,但打开图像时使用的是./(当前工作目录),导致PIL无法找到真实的图像文件,进而误判所有文件损坏。
修正后的验证脚本
修改路径拼接逻辑,使用完整路径打开文件,同时增加额外验证步骤:
import os from PIL import Image from google.colab import drive import zipfile drive.mount('/content/drive') # 解压数据集 extract_dir = 'dogcatdata/train' zip_ref = zipfile.ZipFile("/content/drive/MyDrive/test/dogcatdata.zip", 'r') zip_ref.extractall(extract_dir) zip_ref.close() # 验证压缩包完整性(可选) bad_zip_files = zip_ref.testzip() if bad_zip_files: print(f"压缩包内损坏文件:{bad_zip_files}") else: print("压缩包校验完整") count = 0 dog_dir = '/content/dogcatdata/train/dogcatdata/train/dog' # 遍历目标目录,使用完整路径打开图像 for filename in os.listdir(dog_dir): file_path = os.path.join(dog_dir, filename) try: with Image.open(file_path) as img: img.verify() # 验证文件格式 img = Image.open(file_path) # 重新打开读取内容 img.load() except (IOError, SyntaxError, Image.UnidentifiedImageError) as e: count += 1 print(f"损坏文件:{filename},错误信息:{str(e)}") print(f"\n总计损坏文件数量:{count}")
额外排查建议
- 确认解压目录结构:执行
!ls -l /content/dogcatdata/train/dogcatdata/train/dog查看目录下是否存在有效JPG文件 - 更新PIL库:执行
!pip install --upgrade pillow解决版本兼容问题 - 重新上传压缩包:若压缩包传输中损坏,重新上传后再测试
内容的提问来源于stack exchange,提问作者Đăng Sơn Nguyễn
相关产品推荐
相关产品推荐

