【问题标题】:transfer learning practice for distinguishing cat and dog区分猫狗的迁移学习实践
【发布时间】:2020-02-20 02:48:33
【问题描述】:

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

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

这是我的代码。Code

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

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

【问题讨论】:

  • 我相信你需要在 path 的末尾添加一个斜杠,在 Transfer 之后。
  • 请在此处粘贴您的代码,而不是提供您的代码图像。您可以使用带有python your code 的降价代码块。
  • 注意:还要确保您的文件具有有效的图像格式(jpg、png 等)。目前看起来他们的名字类似于'cat.0'(这是否意味着您的图像扩展名是“.0”,或者您隐藏了文件扩展名?)。

标签: machine-learning transfer-learning


【解决方案1】:

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() 可能会为操作系统创建不可解析的路径。当我对获取某些特定类型(扩展名)的文件感兴趣时,我会使用glob.glob。但是glob.glob(path) 需要一个有效的路径才能使用。在我的解决方案中,os.path.join() 正在从路径组件创建该路径并将其输入到glob.glob()

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

另外,请参阅 pathlib 模块以替代 os.path.join() 的路径操作。

【讨论】:

  • 谢谢!有效!你能告诉我 glob.glob() 和在 glob.glob() 中使用 os.path.join() 的区别吗??
  • @curtissohn 请考虑 acceptingupvoting 的答案。谢谢。
  • os.path.join() 帮助您将多个文件夹连接在一起以创建路径。无论您是在 Windows/Mac/Linux 系统上,这都可以使用。但如您所知,对于 Windows,路径分隔符是 **,对于 Mac/Linux,它是 **/,不使用 os.path.join() 可能会为操作系统创建不可解析的路径。当我有兴趣获取某些特定类型的文件时,我会使用glob.glob。但是glob.glob(path) 需要一个有效的路径才能使用。在我的解决方案中,os.path.join() is creating that path from the path components and feeding it into glob.glob()`。为了更清楚,我建议您查看文档。
  • @curtissohn 请accept左端的解决方案(有一个勾号:当你点击它会变成绿色)。 How to accept an answer?.
猜你喜欢
  • 1970-01-01
  • 2016-11-28
  • 1970-01-01
  • 1970-01-01
  • 2017-09-14
  • 2020-05-13
  • 2018-10-04
  • 2019-12-17
  • 2020-11-07
相关资源
最近更新 更多