Keras ImageDataGenerator 用于多个输入和基于图像的目标输出

2023-11-24

我有一个模型,它以两个图像作为输入并生成单个图像作为目标输出。

我的所有训练图像数据都位于以下子文件夹中:

  • input1
  • input2
  • target

我可以使用ImageDataGenerator类和方法如flow_from_directory and model.fit_generatorkeras 中训练网络的方法?

我怎样才能做到这一点?因为我遇到的大多数示例都处理单个输入和基于标签的目标输出。

就我而言,我有一个非分类目标输出数据和多个输入。

请帮忙,因为您的建议非常有帮助。


一种可能性是加入三个ImageDataGenerator合而为一,使用class_mode=None(所以他们不会返回任何目标),并使用shuffle=False(重要的)。确保您使用的是相同的batch_size对于每个并确保每个输入位于不同的目录中,目标也位于不同的目录中,并且每个目录中的图像数量完全相同。

idg1 = ImageDataGenerator(...choose params...)
idg2 = ImageDataGenerator(...choose params...)
idg3 = ImageDataGenerator(...choose params...)

gen1 = idg1.flow_from_directory('input1_dir',
                                shuffle=False,
                                class_mode=None)
gen2 = idg2.flow_from_directory('input2_dir',
                                shuffle=False,
                                class_mode=None)
gen3 = idg3.flow_from_directory('target_dir',
                                shuffle=False,
                                class_mode=None)

创建自定义生成器:

class JoinedGen(tf.keras.utils.Sequence):
    def __init__(self, input_gen1, input_gen2, target_gen):
        self.gen1 = input_gen1
        self.gen2 = input_gen2
        self.gen3 = target_gen

        assert len(input_gen1) == len(input_gen2) == len(target_gen)

    def __len__(self):
        return len(self.gen1)

    def __getitem__(self, i):
        x1 = self.gen1[i]
        x2 = self.gen2[i]
        y = self.gen3[i]

        return [x1, x2], y

    def on_epoch_end(self):
        self.gen1.on_epoch_end()
        self.gen2.on_epoch_end()
        self.gen3.on_epoch_end()

使用该生成器进行训练:

my_gen = JoinedGen(gen1, gen2, gen3)
model.fit_generator(my_gen, ...)

或者创建一个自定义生成器。它的所有结构如上所示。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Keras ImageDataGenerator 用于多个输入和基于图像的目标输出 的相关文章

随机推荐

  • 存在多个 AJAX 刷新和 TinyMCE 问题

    所以我就陷入了这样的困境 上面是在我的PHP页面上调用的 然后我打电话 var request ajax url getEvents php type POST data method showevents dataType
  • Docker-Compose 容器 IP 地址和容器名称

    我的 docker compose 有两个服务 和 docker compose yml 定义环境变量 ip 地址和容器名称 version 2 services api build api command python3 manage p
  • 重复的 HTTP 响应标头是否可以接受?

    我还没有找到任何关于标准是否允许重复的 HTTP 响应头的规范 但我需要知道这是否会导致兼容性问题 假设我有一个像这样的响应标头 HTTP 1 1 302 Moved Temporarily Server Apache Coyote 1 1
  • Zend Form SetAction 使用命名路由

    我有一个表格 我正在尝试为其设置操作 我想使用我在引导程序中创建的路由在表单文件 扩展 Zend Form 中而不是在控制器或视图中声明操作 通常当我想使用路线时我会做类似的事情 this gt url array route name 在
  • Spring @QuerydslPredicate 问题

    使用的库 Spring Boot 1 3 2 RELEASE 查询DSL 3 7 2 QueryDSL Maven 插件 1 1 3 休眠 4 3 11 Final Issue 目前 我有一个 Spring Boot 应用程序 它具有使用
  • 在 Android 地图中的 geo:-url 处显示标记

    Android 上的 Google 地图是否不仅可以在地图应用程序中显示给定坐标 还可以在该位置设置标记 或图钉 我阅读了文档https developer android com guide appendix g app intents
  • 客户端文件创建和下载

    我们正在使用 fusioncharts 它能够在客户端使用 javascript 导出 csv 数据 我们希望能够获取该数据并在浏览器中动态创建文件 那可能吗 如何 尝试下面的代码允许您访问客户端文件系统 但这仅适用于 IE 浏览器
  • NetBeans 中 Java EE 项目中的默认 index.jsp 文件在哪里?

    我在 NetBeans 中创建一个简单的 Web 应用程序 名为 WebApplication1 已创建一个文件 名为index jsp 当我运行应用程序时 浏览器会转到index jsp 项目中没有任何地方将其称为欢迎页面 那么那里进展如
  • ios uitableview 在滚动时淡入底部单元格和顶部单元格

    当我的 uitableview 的单元格滚动到视图之外时 我会淡出它们 或者当它们滚动到视图中时 我会淡入它们 我面临的问题是 如果我滚动得非常快 有时完全可见的单元格会保持灰色 下面是我的代码 void scrollViewDidScro
  • Starteam 到 X 的迁移? (其中 X 是以下之一:svn/git/hg/bzr ...)

    是否有工具可以将 Starteam 迁移到 svn 或 git 或任何其他现代 体面的源控制系统 我正在考虑一些类似的事情git svn作品 允许您使用 git 从 svn 存储库中拉取 可以导入 StarTeam 存储库并将其转换为 sv
  • 使用 oledb 命令从 Excel 中读取数据

    在下面的代码中 而不是指定选项卡名称 我们是否可以只说 select from tab1 选项卡名称可能是什么 OleDbCommand excelOledbCommand new OleDbCommand Select From Shee
  • 使用引用参数嵌套调用 consteval 函数

    下面的程序 template
  • 通过命令行进行文件夹比较

    我想比较 Windows Vista XP 上的两个文件夹 其中有大量大文件 我需要比较它们 如果我使用Beyond Compare或者类似的工具来比较文件夹 如果我手动进行的话会花费很多时间 我需要将该文件夹比较添加到批处理文件中 那么在
  • 如何估计 GIF 文件大小?

    我们正在建立在线视频编辑服务 其中一项功能允许用户将视频中的一小段导出为动画 gif 伊姆古尔有一个文件大小限制每个上传的 gif 动画大小为 2Mb Gif 文件大小取决于帧数 颜色深度和图像内容本身 纯色的平面颜色会产生非常轻量级的 g
  • 如何通过控制台启用/禁用 google chrome 扩展

    今天 在打开 Google Chrome 时 我意识到没有简单的方法可以在不前往以下位置之一的情况下启用或禁用扩展 chrome 扩展 单击工具 gt 扩展 gt 启用 禁用 这之所以如此重要 是因为它占用的资源 例如 我将启动我的计算机
  • 通过ID动态获取drawable

    我想要一个byte并将其附加到资源 ID 中 以便能够获取与游戏中编号的牌组相对应的图像 使用其他设备上的路径很容易 但是使用资源 ID 我不确定如何才能做到这一点 这是我现在所拥有的 switch GameSettings gameDec
  • 漏洞? System.ArgumentException:“无法找出以下路径:

    Error System ArgumentException 无法找出以下路径 RegisterPage参数名称 uri System ArgumentException unable 找出路线 LogoPage 参数名称 uri 怎么了
  • 从带有 cookie 的 Chrome 扩展程序发送 XHR 请求

    我正在尝试将 XHR 请求从 Google Chrome 扩展程序发送到另一个域 这可以正常工作 但我需要随请求发送该域 cookie 有办法做到这一点吗 确保manifest json 权限 are 正确设置 您必须在中正确设置跨站域请求
  • 如何在 PowerShell 上转义命令行参数?

    看来我可以使用单引号或双引号转义命令行参数 PS C gt echo Hello World Hello World PS C gt echo Hello World Hello World PS C gt echo Hello World
  • Keras ImageDataGenerator 用于多个输入和基于图像的目标输出

    我有一个模型 它以两个图像作为输入并生成单个图像作为目标输出 我的所有训练图像数据都位于以下子文件夹中 input1 input2 target 我可以使用ImageDataGenerator类和方法如flow from directory