当前位置: 首页 > article >正文

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.lryc.cn/news/2404155.html

相关文章:

  • QuickJS 如何发送一封邮件 ?
  • clickhouse 和 influxdb 选型
  • GOOUUU ESP32-S3-CAM 果云科技开发板开发指南(一)(超详细!)Vscode+espidf 通过摄像头拍摄照片并存取到SD卡中,文末附源码
  • C++学习思路
  • 全流程开源!高德3D贴图生成系统,白模一键生成真实感纹理贴图
  • 使用Conda管理服务器多版本Python环境的完整指南
  • html 滚动条滚动过快会留下边框线
  • 数据通信与计算机网络——数据与信号
  • 【LLM大模型技术专题】「入门到精通系列教程」LangChain4j与Spring Boot集成开发实战指南
  • Flask 基础与实战概述
  • 东芝Toshiba e-STUDIO2110AC打印机信息
  • Vue3 GSAP动画库绑定滚动条视差效果 绑定滚动条 滚动条动画 时间轴
  • grafana-mcp-analyzer:基于 MCP 的轻量 AI 分析监控图表的运维神器!
  • git commit 执行报错 sh: -/: invalid option
  • uniapp 设置手机不息屏
  • 【题解-洛谷】B3622 枚举子集(递归实现指数型枚举)
  • (LeetCode 每日一题)3170. 删除星号以后字典序最小的字符串(贪心+栈)
  • Protobuf 中的类型查找规则
  • Python项目中添加环境配置文件
  • 【区块链基础】区块链的 Fork(分叉)深度解析:原理、类型、历史案例及共识机制的影响
  • IOS 打包账号发布上传和IOS Xcode证书配置
  • 使用 HTML + JavaScript 实现文章逐句高亮朗读功能
  • 【CSS-4】掌握CSS文字样式:从基础到高级技巧
  • 双碳时代,能源调度的难题正从“发电侧”转向“企业侧”
  • 3. 简述node.js特性与底层原理
  • OpenCV CUDA模块图像处理------创建一个模板匹配(Template Matching)对象函数createTemplateMatching()
  • 【Kubernetes】K8s 之 ETCD - 恢复备份
  • CMS、G1、ZGC、Shenandoah 的全面对比
  • RabbitMQ 学习
  • 如何轻松、安全地管理密码(新手指南)