tensorflow image_dataset_from_directory 训练数据集构建

以数据集 https://www.kaggle.com/datasets/vipoooool/new-plant-diseases-dataset 为例

目录结构

训练图像数据集要求:

  • 主目录下包含多个子目录,每个子目录代表一个类别。
  • 每个子目录中存储属于该类别的图像文件。

例如

main_directory/
...cat/
......cat_image_1.jpg
......cat_image_2.jpg
...dog/
......dog_image_1.jpg
......dog_image_2.jpg
  • main_directory 是主目录。
  • cat 和 dog 是两个类别对应的子目录。
  • 子目录中的文件是属于该类别的图像文件。

在 TensorFlow 和 Keras 中,image_dataset_from_directory 是一个用于从文件系统中加载图像数据的便捷函数。它可以从目录结构中自动推断标签,并生成一个 tf.data.Dataset 对象,便于模型训练和评估。

download_path = kagglehub.dataset_download("vipoooool/new-plant-diseases-dataset")
print("Path to dataset files:", download_path)# 定义数据集路径
dataset_path = f"{download_path}/New Plant Diseases Dataset(Augmented)/New Plant Diseases Dataset(Augmented)"
# 定义训练集目录
trainDir = os.path.join(dataset_path, "train")# 开启 TensorFlow 设备放置日志,方便调试时查看运算在哪个设备上执行
# tf.debugging.set_log_device_placement(True)print("trainDir:", trainDir)
# 从训练集目录加载图像数据集
training_set = keras_utils.image_dataset_from_directory(trainDir,labels="inferred",  # 从目录结构推断图像标签label_mode="categorical",  # 使用独热编码的标签class_names=None,  # 自动推断类别名称color_mode="rgb",  # 处理 RGB 图像batch_size=32,  # 每个批次包含 32 张图像image_size=(128, 128),  # 将图像大小调整为 128x128shuffle=True,  # 打乱数据集seed=None,  # 不设置随机种子validation_split=None,  # 不进行数据集划分subset=None,  # 不指定子集interpolation="bilinear",  # 使用双线性插值调整图像大小follow_links=False,  # 不跟随符号链接crop_to_aspect_ratio=False,  # 不按纵横比裁剪图像
)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/web/82884.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

遨游Spring AI:第一盘菜Hello World

Spring AI的正式版已经发布了,很显然,接下来我们要做的事情就是写一个Hello World。 总体思路就是在本地搭建一个简单的大模型,然后编写Spring AI代码与模型进行交互。 分五步: 1. 安装Ollama; 2. 安装DeepSeek&…

华为云Flexus+DeepSeek征文|基于华为云Flexus X和DeepSeek-R1打造个人知识库问答系统

目录 前言 1 快速部署:一键搭建Dify平台 1.1 部署流程详解 1.2 初始配置与登录 2 构建专属知识库 2.1 进入知识库模块并创建新库 2.2 选择数据源导入内容 2.3 上传并识别多种文档格式 2.4 文本处理与索引构建 2.5 保存并完成知识库创建 3接入ModelArts S…

Java优化:双重for循环

在工作中,经常性的会出现在两张表中查找相同ID的数据,许多开发者会使用两层for循环嵌套,虽然实现功能没有问题,但是效率极低,一下是一个简单的优化过程,代码耗时凑从26856ms优化到了748ms。 功能场景 有两…

Prompt Tuning:生成的模型文件有什么构成

一、为什么Prompt Tuning会生成模型文件? 1. Prompt Tuning的本质:优化可训练的「提示参数」 核心逻辑:Prompt Tuning(提示调优)是一种轻量级的微调技术,仅优化模型输入层的提示向量(Prompt Embedding)或少量额外参数,而非更新整个预训练模型的权重。生成模型文件的原…

ARM SMMUv3简介(一)

1.概述 SMMU(System Memory Management Unit,系统内存管理单元)是ARM架构中用于管理设备访问系统内存的硬件模块。SMMU和MMU的功能类似,都是将虚拟地址转换成物理地址,不同的是MMU转换的虚拟地址来自CPU,S…

在 Windows 系统上运行 Docker 容器中的 Ubuntu 镜像并显示 GUI

在 Windows 上安装一个 X Server(如 VcXsrv 或 X410),Ubuntu 容器通过网络将图形界面转发到 Windows。 步骤: 安装 X Server: 推荐使用VcXsrv,免费开源。 安装后运行 XLaunch,选择&#xff1…

Vue3学习(4)- computed的使用

1. 简述与使用 作用:computed 用于基于响应式数据派生出新值,其值会自动缓存并在依赖变化时更新。 ​缓存机制​:依赖未变化时直接返回缓存值,避免重复计算(通过 _dirty 标志位实现)。​响应式更新​&…

【HarmonyOS 5】出行导航开发实践介绍以及详细案例

以下是 ‌HarmonyOS 5‌ 出行导航的核心能力详解(无代码版),聚焦智能交互、多端协同与场景化创新: 一、交互革新:从被动响应到主动服务 ‌意图驱动导航‌ ‌自然语义理解‌:用户通过语音指令(如…

csrf攻击学习

原理 csrf又称跨站伪造请求攻击,现代网站利用Cookie、Session 或 Token 等机制识别用户身份,一旦用户访问某个网站,浏览器在之后请求会自动带上这些信息来识别用户身份。用户在网站进行请求或者操作时服务器会给出对应的内容,比如…

深入剖析MySQL锁机制,多事务并发场景锁竞争

一、隐藏字段对 InnoDB 的行锁(Record Lock)与间隙锁(Gap Lock)的影响 1. 隐藏字段与锁的三大核心影响 类型影响维度描述DB_TRX_IDMVCC 可见性控制决定是否读取当前版本,或在加锁时避开不可见版本(影响加锁…

以SMMUv2为例,使用Trace32可视化操作SMMU的常用命令详解

Trace32支持一系列的SMMU命令,可以帮助用户更好地配置、查看和分析SMMU。换句话说,就是让SMMU的配置变得可视化。 在添加SMMU实例之前,需要选择一个CPU来激活该SMMU实例的相关命令。Trace32让SMMU的配置可视化的本质是,操纵CPU读取…

将数据库表导出为C#实体对象

数据库方式 use 数据库;declare TableName sysname 表名 declare Result varchar(max) /// <summary> /// TableName /// </summary> public class TableName {select Result Result /// <summary>/// CONVERT(NVARCHAR(500), ISNULL(ColN…

CSS 预处理器与工具

目录 CSS 预处理器与工具1. Less主要特性 2. Sass/SCSS主要特性 3. Tailwind CSS主要特性 4. 其他工具PostCSSCSS Modules 5. 选择建议 CSS 预处理器与工具 1. Less Less 是一个 CSS 预处理器&#xff0c;它扩展了 CSS 语言&#xff0c;添加了变量、嵌套规则、混合&#xff0…

this.$set() 的用法详解(Vue响应式系统相关)

1. 什么是 this.$set()&#xff1f; this.$set(target, key, value) 是 Vue 2 中提供的一个方法&#xff0c;用于向响应式对象中动态添加属性&#xff0c;确保新加的属性同样是响应式的。 2. 为什么需要它&#xff1f; Vue 2 的响应式系统基于 Object.defineProperty&#…

【HarmonyOS Next之旅】DevEco Studio使用指南(三十)

目录 1 -> 部署云侧工程 2 -> 通过CloudDev面板获取云开发资源支持 3 -> 通用云开发模板 3.1 -> 适用范围 3.2 -> 效果图 4 -> 总结 1 -> 部署云侧工程 可以选择在云函数和云数据库全部开发完成后&#xff0c;将整个云工程资源统一部署到AGC云端。…

如何配置nginx解决前端跨域请求问题

我们以一个简单的例子模拟不同情况下产生的跨域问题以及解决方案。假设在http://127.0.0.1:8000的页面调用接口 fetch(http://127.0.0.1:8003/api/data)常看到的错误“Access to fetch at ‘http://127.0.0.1:8003/api/data’ from origin ‘http://localhost:8000’ has been…

React Hooks 指南:何时使用 useEffect ?

在 React 的函数组件中&#xff0c;useEffect Hook 是一个强大且不可或缺的工具。它允许我们处理副作用 (side effects)——那些在组件渲染之外发生的操作。但是&#xff0c;什么时候才是使用 useEffect 的正确时机呢&#xff1f;让我们深入探讨一下&#xff01; 什么是副作用…

bat批量去掉本文件夹中的文件扩展名

本文本夹内 批量去掉本文件夹中的文件扩展名 假如你有一些文件&#xff0c;你想去掉他们的扩展名 有没有方便的办法呢 今天我们就分享一种办法。 下面&#xff0c;就来看看吧。 首先我们新建一个记事本&#xff0c;把名字改为&#xff0c;批量去掉本文件夹中的文件扩展名.txt 然…

STM32标准库-输入捕获

一、输入捕获 1.简介 IC&#xff08;Input Capture&#xff09;输入捕获输入 捕获模式下&#xff0c;当通道输入引脚出现指定电平跳变时&#xff0c;当前CNT的值将被锁存到CCR中&#xff0c;可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数 每个高级定时器和…

在linux系统上搭建git服务器(ssh协议)

1.在windows上生成RSA密钥对 ssh-keygen -t rsa -b 2048 -C"git用户名/邮箱地址" 命令执行后会在 C:\Users\${windows登录账户}\.ssh 目录下生成密钥对 其中 id_rsa 为私钥&#xff0c;id_rsa.pub 为公钥 2.在 linux 系统上登记公钥 vim ~/.ssh/authorized_keys…