返回顶部
首页 > 资讯 > 精选 >Pytorch中如何使用ImageFolder读取数据集时忽略特定文件
  • 368
分享到

Pytorch中如何使用ImageFolder读取数据集时忽略特定文件

2023-06-29 15:06:55 368人浏览 独家记忆
摘要

这篇文章主要介绍PyTorch中如何使用ImageFolder读取数据集时忽略特定文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、使用ImageFolder读取数据集时忽略特定文件如果事先知道需要忽略哪些文件,

这篇文章主要介绍PyTorch中如何使用ImageFolder读取数据集时忽略特定文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

一、使用ImageFolder读取数据集时忽略特定文件

如果事先知道需要忽略哪些文件,当然直接从数据集里删除就行了。但如果需要在程序运行时动态确认,或者筛选规则比较复杂,人工不好做,就需要让ImageFolder在读取时使用自定义的筛选规则。

ImageFolder有一个可选参数为is_valid_file,参数类型为可调用的函数,该函数传入一个str参数,返回一个bool值。当返回值为True时保留该文件,否则忽略。

例如,读取时想要忽略所有文件名带‘invalid’的文件,

代码如下:

import platfORMfrom torchvision.datasets import ImageFolderclass Check(object):    def __init__(self,                 key_Word: str):        self.key_word = key_word        self.separator = '\\' if platform.system() == 'windows' else '/'    def __call__(self,                  file_name: str) -> bool:        folders = file_name.split(self.separator)        return folders[-1].find(self.key_word) < 0dataset = ImageFolder('./data', is_valid_file=Check('invalid'))

这里定义了一个实现了__call__方法的Check类,相比于直接定义函数的好处在于可以在构造函数里指定想要忽略的字符,并且能够根据操作系统的不同把文件目录分隔符给确定了。

更加复杂的功能可以自行修改代码逻辑实现,但是要注意如果某个类别的所有文件都被筛选掉了,ImageFolder会报FileNotFoundError错误。

如果想要忽略整个类别可以使用下面方法!!!

二、ImageFolder只读取部分类别文件夹

直接继承并且重写ImageFolder类的find_classes方法即可

from torchvision.datasets.folder import *from typing import *class FilterableImageFolder(ImageFolder):    def __init__(            self,            root: str,            transform: Optional[Callable] = None,            target_transform: Optional[Callable] = None,            loader: Callable[[str], Any] = default_loader,            is_valid_file: Optional[Callable[[str], bool]] = None,            valid_classes: List = None    ):        self.valid_classes = valid_classes        super(FilterableImageFolder, self).__init__(root, transform, target_transform, loader, is_valid_file)    def find_classes(self, directory: str) -> Tuple[List[str], Dict[str, int]]:        classes = sorted(entry.name for entry in os.scandir(directory) if entry.is_dir())        #增加了这下面这句        classes = [valid_class for valid_class in classes if valid_class in self.valid_classes]        if not classes:            raise FileNotFoundError(f"Couldn't find any class folder in {directory}.")        class_to_idx = {cls_name: i for i, cls_name in enumerate(classes)}        return classes, class_to_idx

使用时,例如有mousecatdog三个类别的数据集文件夹,只想读取catdog

代码如下:

dataset = FilterableImageFolder('./data', valid_classes=['cat', 'dog'])

以上是“Pytorch中如何使用ImageFolder读取数据集时忽略特定文件”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: Pytorch中如何使用ImageFolder读取数据集时忽略特定文件

本文链接: https://lsjlt.com/news/325475.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Pytorch中使用ImageFolder读取数据集时忽略特定文件
    目录一、使用ImageFolder读取数据集时忽略特定文件二、ImageFolder只读取部分类别文件夹一、使用ImageFolder读取数据集时忽略特定文件 如果事先知道需要忽略哪...
    99+
    2024-04-02
  • Pytorch中如何使用ImageFolder读取数据集时忽略特定文件
    这篇文章主要介绍Pytorch中如何使用ImageFolder读取数据集时忽略特定文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、使用ImageFolder读取数据集时忽略特定文件如果事先知道需要忽略哪些文件,...
    99+
    2023-06-29
  • 如何使用pytorch加载并读取COCO数据集
    这篇文章主要介绍“如何使用pytorch加载并读取COCO数据集”,在日常操作中,相信很多人在如何使用pytorch加载并读取COCO数据集问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用pytorch...
    99+
    2023-06-30
  • Python如何读取CSV文件中的特定列
    Python如何读取CSV文件中的特定列 Python是一种功能强大的编程语言,它提供了许多库和工具,用于处理各种类型的数据。在数据科学和数据分析领域,CSV(逗号分隔值)文件是一种常见的数据存储格式...
    99+
    2023-10-06
    python 人工智能 数据库 Python
  • 如何在Pytorch中使用Dataset和DataLoader读取数据
    本篇文章给大家分享的是有关如何在Pytorch中使用Dataset和DataLoader读取数据,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、前言确保安装scikit-im...
    99+
    2023-06-15
  • python如何读取json文件指定数据
    在Python中,可以使用`json`模块来读取和处理JSON文件。下面是一个示例代码,展示了如何读取JSON文件中的指定数据:``...
    99+
    2023-09-04
    python json
  • 如何使用PyTorch实现自由的数据读取
    目录前言PyTorch数据读入函数介绍ImageFolderDatasetDataLoader问题来源自定义数据读入的举例实现总结前言 很多前人曾说过,深度学习好比炼丹,框架就是丹炉...
    99+
    2024-04-02
  • 文件重定向在Python中的应用:如何使用load函数读取数据?
    文件重定向是一个常用的技术,在Python中也是如此。文件重定向允许将标准输入和标准输出重新定向到文件或其他流中。这种技术对于读取和写入数据非常有用。在Python中,我们可以使用load函数来读取数据。在本文中,我们将介绍文件重定向的基...
    99+
    2023-09-20
    文件 重定向 load
  • 如何从json文件中读取数据
    你可以使用Python的`json`模块来读取JSON文件。下面是一个简单的示例代码:```pythonimport json# 打...
    99+
    2023-09-13
    json
  • python如何读取文件中的数据
    Python中可以使用open()函数来读取文件中的数据。下面是一个基本的使用示例:```pythonfile = open("fi...
    99+
    2023-09-14
    python
  • 如何使用Python读取大数据中的对象文件?
    在当今的数据时代,大数据已经成为了一种趋势。大数据存储的文件类型也越来越多,其中对象文件是一种常见的文件类型。Python作为一种流行的编程语言,自然也可以用来读取大数据中的对象文件。 本文将介绍如何使用Python读取大数据中的对象文件。...
    99+
    2023-10-26
    对象 文件 大数据
  • 如何使用pandas读取csv文件中的某一列数据
    使用pandas读取csv文件中的某一列数据,可以这样做: 先导入pandas模块:import pandas as pd使用pd.read_csv函数读取csv文件:df = pd.read_csv("文件名.csv")使用df["列...
    99+
    2023-08-31
    pandas python 数据分析 数据挖掘 机器学习
  • 如何使用Python读取实时生成的数组文件?
    Python是一个强大的编程语言,常用于数据处理、机器学习、人工智能等领域。在处理数据时,我们通常需要读取实时生成的数组文件,以便进一步分析和处理数据。本文将介绍如何使用Python读取实时生成的数组文件。 一、什么是数组文件? 数组文件是...
    99+
    2023-07-06
    实时 数组 文件
  • 读取文件时,如何使用用户输入作为文件名
    编程网今天将给大家带来《读取文件时,如何使用用户输入作为文件名》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能...
    99+
    2024-04-05
  • c语言如何从文件中读取数据
    在C语言中,我们可以使用以下步骤从文件中读取数据:1. 打开文件:使用`fopen()`函数打开文件,它接受两个参数,一个是文件名,...
    99+
    2023-09-20
    c语言
  • C++如何读取wav文件中的PCM数据
    这篇文章主要介绍C++如何读取wav文件中的PCM数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前言wav文件通常会使用PCM格式数据存储音频,这种格式的数据读取出来直接就可以播放,要在wav文件中读取数据,我们...
    99+
    2023-06-26
  • 如何在 Golang 中使用自定义分隔符读取文件?
    在 golang 中使用自定义分隔符读取文件:使用 bufio.newreader 创建一个 reader 对象。设置 reader.splitfunc 函数来返回自定义分隔符的位置和行...
    99+
    2024-05-15
    golang 自定义分隔符
  • 如何用BAT实时读取某个文件目录下文件数
    这篇文章主要讲解了“如何用BAT实时读取某个文件目录下文件数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用BAT实时读取某个文件目录下文件数”吧!最近帮助一个朋友制作一个简单的课件展示...
    99+
    2023-06-08
  • PHP如何从txt文件中读取数据详解
    目录一、打开/关闭文件二、读写文件1、读取整个文件2、读取一行数据3、读取一个字符4、读取任意长度的字符串总结 一、打开/关闭文件 1、对文件操作时首先要打开文件,打开文件...
    99+
    2024-04-02
  • 如何在PHP文件中实时读取外部数据?教程来了!
    PHP是一种高度灵活的编程语言,可以用来开发各种类型的应用程序。其中,实时读取外部数据是PHP应用程序中的一个常见需求。在这篇文章中,我们将介绍如何在PHP文件中实时读取外部数据,并提供一些演示代码供您参考。 一、使用PHP的file_ge...
    99+
    2023-10-10
    文件 教程 实时
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作