在学习到《Tensoflow:实战Google深度学习框架(第2版)》-第六章图像识别与卷积神经网络- 6.52.Tensorflow实现迁移学习的章节当中,遇到了一个预处理图像的一个坑。

# 获取一个子目录中所有的图片文件
extensions = ['jpg', 'jpeg','JPG','JPEG'] # 注意下这里file_list = []dir_name = os.path.basename(sub_dir)for extension in extensions:file_glob = os.path.join(INPUT_DATA, dir_name, '*.' + extension)print(file_glob)file_list.extend(glob.glob(file_glob))if not file_list:continueprint(len(file_list))
extensions = ['jpg', 'jpeg','JPG','JPEG'] 

这行代码在Linux下是没问题的,但是在Windows下运行是有问题的。

问题出现在下面的glob.glob()函数,里面的通配符匹配,在Windows下是不区分大小写的,而在Linux下是区分大小写的,所以在Linux下没这个问题。

但在Windows中,glob.glob()把*.jpg和*.jpeg的图片分别读取了两次(小写一次,大写一次),file_list自然的也增加了一倍的数据。

所以代码应该修改为:

extensions = ['jpg', 'jpeg']  # windows

在图片的预处理中,数据翻倍,会增加很多的时间,不仅如此,内存消耗也会增加很多,我在遇到这个坑的时候,16G内存也不够用,也白白浪费了很多时间。

glob.glob()的一个坑相关推荐

  1. glob.glob 函数读取文件

    glob.glob(pathname) 返回所有匹配的文件路径列表.它只有一个参数 pathname,定义了文件路径匹配规则,这里可以是绝对路径,也可以是相对路径. 如当前路径下有文件如下: * 返回 ...

  2. python 的标准库模块glob使用教程,主要为glob.glob()使用与glob.iglob()使用

    欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 python 的标准库模块glob使用教程,主要为glob.glob函数使用与glob.iglob函数使用 文章目录: ...

  3. glob.glob() + os.path.join() :找到文件路径,拼接路径

    1. glob方法: glob模块的主要方法就是glob,该方法返回所有匹配的文件路径列表(list):该方法需要一个参数用来指定匹配的路径字符串(字符串可以为绝对路径也可以为相对路径),其返回的文件 ...

  4. glob.glob()

    glob.glob()函数 glob.glob()含有的内容非常少,其功能是查找符合特定规则的文件路径.例如(F:/Python/Hello). 功能类似于Windows的文件搜索. 查找文件只用到三 ...

  5. python之glob.glob

    函数功能: 匹配所有的符合条件的文件,并将其以list的形式返回. glob.glob函数:   glob模块被用来查找符合特定规则的文件路径名.跟使用windows下的文件搜索差不多.glob.gl ...

  6. python glob.glob

    前言 在做NLP数据预处理的时候,经常会遇一种情况(拿文本分类举例子):假设我们的文本有7类,正常情况下我们可以把所有的训练数据都写到一个文件中,然后将其对应的标签写到另一个文件中,但是有很多时候数据 ...

  7. python中 glob.glob

    使用了下thrift,出现了一些路径问题.原来是glob.glob函数捣的鬼.所以扒了下英文文档,有些收获.下面分享. 函数功能:匹配所有的符合条件的文件,并将其以list的形式返回. 一.glob. ...

  8. glob模块中的glob.glob和golb.iglob

    glob模块是最简单的模块之一,内容非常少.用它可以查找符合特定规则的文件路径名.跟使用windows下的文件搜索差不多.查找文件只用到三个匹配符:"*", "?&quo ...

  9. python-基础语法-glob.glob()

    参考声明:https://blog.csdn.net/lanchunhui/article/details/70170813 https://blog.csdn.net/lanchunhui/arti ...

最新文章

  1. python同步赋值原理,Python直接赋值及深浅拷贝原理详解
  2. jenkins-为什么要持续集成
  3. Java并发编程 Synchronized及其实现原理
  4. 产生线程安全的原因(2)(操作系统)
  5. linux shell之字符串的比较
  6. libevent网络编程例子(1)
  7. 【less-24】基于SQLI的二次注入
  8. python社区版如何下载库_pycharm社区版在哪里下载
  9. com线程模型实验之三
  10. 【Guava】基于guava的重试组件Guava-Retryer
  11. 昆仑通态触摸屏如何把参数由触摸屏传递到PLC_昆仑通态触摸屏的串口232通讯功能-----有谁用过?...
  12. Docker理论与实践(四)
  13. 海马玩模拟器 v0.7.2 官方版​
  14. 【转帖】计算机编程语言
  15. 使用二手书App的心得
  16. 淘宝直通车表格拖动时间段选择插件,纯手写80%还原
  17. 如何从0快速上线一个网站---详细
  18. CentOS 7 SVN的搭建和使用
  19. SpringBoot集成Redis报non null key required(已解决)
  20. Android 7.0+配置Burpsuite证书

热门文章

  1. 计算机指令的执行过程详解
  2. Soap Web Service和Rest
  3. 白话文带你了解 封装 继承 多态
  4. 初探mapbox地图可视化实例,带你看看家附近有多少咖啡馆
  5. 启动Microsoft Office时出现“无法验证该产品的许可证“Office 应用
  6. SLAM--PL-SLAM中基于线特征的初始化方法(LSD算法,LBD描述子,计算R和t)
  7. (39.2)【XXE漏洞专题】XXE原理、产生、检测、危害、利用、示例
  8. 【JavaScript】toString()和toLocalString()有何区别???
  9. java web漏洞_如何安全检测Java Web应用网站漏洞
  10. 梅科尔工作室-郜翱翔-鸿蒙笔记3