区分猫狗的迁移学习实践

transfer learning practice for distinguishing cat and dog

我正在尝试自己练习迁移学习。

我正在统计每个猫狗文件的数量(猫狗各12500张图片,总共25000张图片)。

这是我的代码。Code

这是我的图片文件夹路径enter image description here。

我认为这是一个简单的代码,但仍然无法弄清楚为什么我的代码中总是得到 (0,0)(应该是(12500 个猫文件,12500 个狗文件)):(.

glob.glob() 中使用 os.path.join()。此外,如果您的所有图像都具有特定的扩展名(例如,jpg),您可以将 '*.*' 替换为 '*.jpg*' 例如。

解决方案

import os, glob

files = glob.glob(os.path.join(path,'train/*.*'))

事实上,您也可以单独使用 os 库执行以下操作,因为您没有选择任何特定的文件扩展名类型。

import os
files = os.listdir(os.path.join(path,'train'))

一些解释

此处的方法os.path.join()可以帮助您将多个文件夹连接在一起以创建路径。无论您使用的是 Windows/Mac/Linux 系统,这都将起作用。但是,对于 windows,路径分隔符是 \,对于 Mac/Linux,它是 /.因此,不使用 os.path.join() 可能会为 OS 创建无法解析的路径。当我对获取某些特定类型(扩展名)的文件感兴趣时,我会使用 glob.glob。但是 glob.glob(path) 需要一个有效的路径才能使用。在我的解决方案中,os.path.join() 从路径组件创建该路径并将其馈送到 glob.glob()

为了更清楚,我建议您查看 os.path.join and glob.glob 的文档。

此外,请参阅 pathlib 路径操作模块作为 os.path.join() 的替代方法。