You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

TensorFlow图像加载指南在Google Colab中无法正常运行,无法统计到图片数量

TensorFlow图像加载指南在Google Colab中无法正常运行,无法统计到图片数量

别慌,我刚帮不少人解决过Colab里这个TensorFlow数据集加载的问题,咱们一步步来排查:

首先,你碰到的image_count为0的核心原因,大概率是自动解压的数据集没加载完成,或者Colab的文件系统缓存让你看不到真实的文件内容——和/root/content的目录层级没关系,那个是正常的,tf.keras.utils.get_file默认就是把数据集存在/root/.keras/datasets/下面,和当前/content平级完全不影响读取。

接下来给你几个解决步骤,按顺序试:

第一步:先确认数据集文件夹里到底有没有内容

先运行这段代码,看看data_dir下面是不是真的有花分类的子文件夹(比如玫瑰、雏菊这些):

import os
print(os.listdir(data_dir))
  • 如果输出是空的,那肯定是解压失败了,直接跳到第二步重新手动下载解压;
  • 如果输出有子文件夹,那再试试把glob的路径改宽一点,比如先找所有文件data_dir.glob('**/*'),看看是不是图片后缀不是.jpg?不过flower_photos数据集都是.jpg,这个概率极低。

第二步:手动重新下载并解压数据集

自动解压有时候会因为Colab的网络波动或者后台进程问题失败,咱们手动来更靠谱:

# 先删掉可能损坏的旧文件/文件夹
!rm -rf /root/.keras/datasets/flower_photos*

# 重新下载压缩包到临时目录,再解压到指定位置
dataset_url = "https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz"
!wget {dataset_url} -O /tmp/flower_photos.tgz
!tar -xzf /tmp/flower_photos.tgz -C /root/.keras/datasets/

# 重新指定data_dir
data_dir = pathlib.Path("/root/.keras/datasets/flower_photos")

然后再统计图片数量:

image_count = len(list(data_dir.glob('*/*.jpg')))
print(image_count)

正常来说这时候应该能输出3670左右的数字了。

备选方案:把数据集下载到当前/content目录

如果上面的方法还是有问题,不如把数据集直接下载到你当前的/content目录,这样在Colab左侧的文件浏览器里能直接看到,排查起来更方便:

# 下载到当前目录并解压
!wget https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz
!tar -xzf flower_photos.tgz

# 指向当前目录下的flower_photos
data_dir = pathlib.Path("./flower_photos")

# 统计图片
image_count = len(list(data_dir.glob('*/*.jpg')))
print(image_count)

额外小提示

Colab的左侧文件浏览器有时候不会自动刷新,如果你手动解压后看不到文件夹,记得点击浏览器顶部的刷新按钮(圆形箭头图标),就能看到新的文件了。要是还不放心,你可以直接在左侧文件浏览器里导航到/root/.keras/datasets/flower_photos,肉眼看看里面有没有内容——直观又准确!

火山引擎 最新活动