Keras 的 ImageDataGenerator 是否随机对每个图像应用转换?

2024-07-01

我正在使用 Keras ImageDataGenerator 类训练 CNN。我的代码看起来像这样:

from keras.callbacks import LearningRateScheduler
from keras.callbacks import EarlyStopping
from keras.preprocessing.image import ImageDataGenerator

    data_generator = ImageDataGenerator(
        rotation_range = 15,
        width_shift_range = 0.1,
        height_shift_range = 0.1,
        horizontal_flip = True
    )
    data_generator.fit(xtrain)

    es = EarlyStopping(monitor = 'val_loss', mode = 'min', verbose = 1, patience = 100)
    history = CNN_model.fit(data_generator.flow(xtrain, ytrain, batch_size = batch_size), \
                                                                          epochs = num_epochs, \
                                                                          validation_data = (xval, yval), \
                                                                          callbacks = [LearningRateScheduler(learning_rate_schedule), es])

现在我已经查看了文档,但我不完全明白它是否对每批中的每个图像进行图像增强,或者它是随机选择其中的一部分?我假设它会对每个图像进行增强,但我正在尝试理解。

如果它对我的数据集中的每个图像执行此操作,这意味着我根本没有在任何训练时期使用未增强的图像,对吗?

Thanks!


好吧,我做了测试,它是随机应用的每张图像,尽管这些图片来自同一批次。

根据我对文档的阅读,我没有理由认为只有部分图像被转换,而其他图像则保持不变。

from tensorflow.keras.preprocessing.image import ImageDataGenerator
from skimage.data import chelsea
import matplotlib.pyplot as plt
import numpy as np

imgs = np.stack([chelsea() for i in range(4*4)], axis=0)

data_gen = ImageDataGenerator(
    rotation_range = 90,
    width_shift_range = 0.1,
    height_shift_range = 0.1,
    horizontal_flip = True,
    preprocessing_function=lambda x: x[..., np.random.permutation([0, 1, 2])]
)

fig = plt.figure()
plt.subplots_adjust(wspace=.2, hspace=.2)
for index, image in enumerate(next(data_gen.flow(imgs)).astype(int)):
    ax = plt.subplot(4, 4, index + 1)
    ax.set_xticks([])
    ax.set_yticks([])
    ax.imshow(image)
plt.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Keras 的 ImageDataGenerator 是否随机对每个图像应用转换? 的相关文章

  • Pytorch不支持one-hot向量?

    我对 Pytorch 如何处理 one hot 向量感到非常困惑 在这个tutorial https pytorch org tutorials beginner blitz cifar10 tutorial html 神经网络将生成一个
  • PyCharm 项目文件消失了

    我当时正在做一个 python 项目JetBrains PyCharm 2016 2 https www jetbrains com pycharm 在 Lubuntu 上 突然之间 我的所有项目文件都从 IDE 中消失了 我尝试了以下方法
  • 如何在pytorch中使用多个GPU?

    我使用此命令来使用 GPU device torch device cuda 0 if torch cuda is available else cpu 但是 我想使用两个 GPUjupyter 像这样 device torch devic
  • 为 scipy 安装 BLAS 和 LAPACK 最简单的方法是什么?

    我想运行一个别人已经准备好的程序 其中包括 scipy 我尝试安装 scipy pip install scipy 但这给了我一个很长的错误 我知道 Anaconda 和 Canopy 有很多方法 但我认为这些方法还有很长的路要走 我想走近
  • PyCharm 中的进程已完成,退出代码为 137

    当我在 PyCharm 中手动停止脚本时 进程以退出代码 137 结束 但我没有停止脚本 仍然得到退出代码 137 有什么问题吗 Python版本是3 6 运行xgboost train 方法时处理完成 退出代码 137 意味着您的进程被
  • 从图像中读取文本

    关于将这些图像转换为文本有什么建议吗 我正在使用 pytesseract 除了这个之外 它在大多数情况下都工作得很好 理想情况下 我会准确地读取这些数字 最坏的情况我可以尝试使用 PIL 来确定 左边的数字是否为零 从左边开始 找到第一个白
  • 加速使用 Pyinstaller 创建的 .exe

    我已经使用 Pyinstaller 将我的程序 用 Python 3 6 1 编写 使用 Python 3 5 3 转换 从 py 转换为 exe 然而 它是加载速度极其缓慢 与在空闲状态下运行时我优化了我想什么问题是 导入大量模块 所以我
  • numpy 不规则跨步数组

    引用文档 http docs scipy org doc numpy reference arrays ndarray html internal memory layout of an ndarray关于内存中的 numpy 数组结构 N
  • 为什么追加会覆盖列表?

    我正在尝试 hackerrank 的一些问题并遇到了这个问题https www hackerrank com challenges list com经理 问题 https www hackerrank com challenges list
  • 在 Tensorflow 中导出推理图时出现“解析输入...形状不完整”错误

    我正在使用 Tensorflow 的对象检测 API 训练神经网络来检测汽车 我使用以下 senddex youtube 视频来学习和执行该过程 还有他的视频的文字版本 https pythonprogramming net testing
  • 以另一种风格制作一个带有形状和偏移参数的 numpy 数组

    我想以 3 元素实体 3d 位置 和单个元素 每个 x y z 坐标 的形式访问我的数组 经过一番研究后 我最终做了以下事情 gt gt gt import numpy as np gt gt gt arr np zeros 5 dtype
  • 在窗口中定位画布 - Tkinter/python

    有没有办法将画布放置在窗口中并在其周围放置一个框架 我只找到了如何在画布内放置对象 您可以创建一个框架 然后将您的小部件放入其中 f tk Frame c1 tk Canvas f c2 tk Canvas f c1 pack side l
  • 如何在python中查找文件的mime类型?

    假设您想要将一堆文件保存在某个地方 例如保存在 BLOB 中 假设您想通过网页分发这些文件 并让客户端自动打开正确的应用程序 查看器 假设 浏览器通过 HTTP 响应中的 mime type 内容类型 标头确定要使用哪个应用程序 查看器 基
  • 使用 plt 在热图上绘制梯度箭头

    我正在尝试绘制箭头以可视化热图上的梯度 这是我到目前为止的代码 import matplotlib pyplot as plt import numpy as np function to plot lambda x y x y 2 hor
  • SQLalchemy“load_only”不只加载指定的列

    我正在尝试从带有 sqlalchemy 的表中选择列的子集load only功能 不幸的是 它似乎不仅仅返回函数调用中指定的列 具体来说 它似乎还获取主键 在我的例子中 是一个 auto increment id 字段 一个简单的例子 如果
  • Django 和原始 Python 之间的性能

    我想知道使用纯 python 文件制作网页和使用 Django 之间的性能差异是什么 我只是想知道两者之间是否有显着差异 谢谢 Django 是纯Python 因此每个类似语句或表达式的执行时间将是相同的 需要理解的是 在进行 Web 开发
  • Apache24-x86-VC9 与 mod_wsgi 说,“AH00419:master_main:创建子进程失败。正在退出。”并且不会启动

    我正在尝试在我的 Windows 版本的 Apache24 上安装 WSGI 功能 当我尝试启动该服务时 我在 error log 中收到以下内容 Wed Dec 23 10 24 33 404057 2015 ssl warn pid 2
  • 使用后禁用按钮

    最近我决定重写我的不和谐机器人并添加按钮 到目前为止我遇到的主要问题是我无法禁用按钮就在被按下之后人们被告知是关于button disabled True实际上 它会禁用该按钮 但它只是将其发送为禁用状态 因此永远无法按下它 我想要的是能够
  • 相当于 C++ 中用于缓冲读取的 python 生成器

    Guido Van Rossum 在此展示了 Python 的简单性article http neopythonic blogspot com 2008 10 sorting million 32 bit integers in 2mb h
  • XPath 错误:[contains(text()="something")]' 不是有效的 XPath 表达式

    在观看了关于 XPath 的非常基本的教程之后 我第一次使用 selenium 构建一个应用程序 该应用程序包含卡的奖金计算器 我写了这段代码 from selenium webdriver import Chrome from webdr

随机推荐

  • linux键盘驱动源码

    我一直致力于为 Linux 制作自己的键盘驱动程序 所以我发现了这两个链接 usbkbd c http lxr free electrons com source drivers hid usbhid usbkbd c and atkbd
  • 有没有办法在 Shiny 中预先缓存输出?

    我有下面的闪亮应用程序 我第一次选择任何给定数字时需要 3 秒才能加载结果 由于bindCache 如果我稍后选择相同的数字 我会立即得到结果 但是 我不想手动选择所有 10 个数字 只是为了让我的应用程序在呈现之前做出响应 有什么办法可以
  • 如何将 DataTable 数据传递到 Bootstrap 模式

    我有一个带有此变量的 jQuery 数据表 columns data id data date data type data name data user name data status data closing date data
  • 无法更改 SSIS Excel 目标列数据类型

    我有一个 SSIS 包 它从 SQL Server 导入数据并将其放入 Excel 目标文件中 当进入 ADO 源组件的高级编辑器时 我有一个字段Description其外部数据类型为Unicode String 长度 4000 输出数据类
  • 使用PHP检测哪个htaccess用户登录?

    我正在构建一个上传功能 以便我认识的人可以安全 轻松地向我发送文件 但我想这样设计 当我的一个朋友用their登录 这将是 htaccess登录 我可以在 PHP 中建立该文件并将其文件记录到与其帐户关联的数据库中 简而言之 我需要 PHP
  • 如何查询 sqlite 的某些行,即将其分为页面(perl DBI)

    抱歉我的菜鸟问题 我目前正在编写一个 Perl Web 应用程序 其背后有 sqlite 数据库 我希望能够在我的应用程序查询结果中显示可能会获得数千行的内容 这些应该分成页面 路由应该像 webapp N 其中 N 是页码 使用 DBI
  • 使用 JSONPath 从 JSON 中排除字段

    我从 REST 服务调用获取 JSON 响应 并且只想从响应中选择部分字段 我正在使用 JSONPath 来过滤字段 下面是 JSON 示例 store book category reference author Nigel Rees t
  • 使用 Spring 依赖注入时,Hibernate SessionFactory 始终为 null

    我得到了NullpointerException在我的保存方法中CityDaoImpl 看来sessionFactory没有自动装配 因为在调试时发现 sessionFactory 从未被注入CityDaoImpl 我浏览了很多答案 但没有
  • 将项目分解为小任务[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我想知道 当一个新项目到来时 比如建立一个社交网站 我该如何将项目分解为小任务 每个项目通常有 2 4 名程序员 但通常没有测试人员 我是否应该
  • 无法在 Postgres (9.3) 索引中使用 concat 函数

    我正在几个文本列上创建索引 在 Postgres 9 3 中 我想使用concat e g CREATE INDEX ON my table USING gin to tsvector english concat title descri
  • 为什么我的蒙特卡洛光线追踪如此嘈杂?

    我使用蒙特卡罗方法实现了全局照明 并使用划痕像素教程作为指导 我的最终图像呈现非常嘈杂 下面的示例是 64 个样本 我之前使用过高达 512 个样本 但它仍然非常嘈杂 有什么想法可能是什么问题吗 编辑 这是 128 个样本和 16x 超级采
  • 如何在 ruby​​ 中解析天/小时/分钟/秒?

    是否有 gem 或其他东西可以解析 4h 30m 1d 4h 等字符串 有点像 JIRA 或任务规划器中的估计 也许具有国际化功能 发布第二个答案 因为慢性 我原来的答案建议 不会给你时间跨度 而是时间戳 这是我的解析器 class Tim
  • 如何规范反向域名排序和自定义过滤上的 XML

    我一直在开发地理应用程序 随着时间的推移 该产品的 XML 变得有点混乱 当跨多个环境 如开发 测试等 同步更改时 就会出现问题 我正在尝试找出一种标准化内容的方法 这样我就可以在编辑和合并时避免一些麻烦 从而实现高效的开发 我知道这听起来
  • 忽略控制器参数缺失导致的异常

    我有一个使用 MVC4 构建的面向互联网的网站 我偶尔会收到来自机器人或好奇的用户发送不完整 URL 请求的错误报告 例如 public class ProductController Controller HttpGet public v
  • 为什么使用 Hibernate 和 Oracle 10g 方言通过 JPA 创建名为 hibernate_sequence 的序列?

    我所有的实体都使用这种类型 Id Id GeneratedValue strategy GenerationType SEQUENCE generator MYENTITY SEQ SequenceGenerator name MYENTI
  • 在 Breeze/Angular 中保留异步查询顺序

    我正在使用 BreezeJS 处理 ng grid 的服务器端过滤 为了做到这一点 我只是 watch对 ng grid 过滤器进行更改 并使用 BreezeJS 刷新我的数据 如果我输入得足够快 AJAX 查询最终可能会乱序返回 我正在考
  • 清除或重置经过淘汰验证验证的 Observable?

    我有一个这样的视图模型 var prop1 ko observable extend required true prop2 ko observable extend required true var validation ko vali
  • 如何在 gitlab-ci 共享运行器上使用自定义 Windows docker 容器

    我有一个包含以下两个文件的存储库 它构建一个安装了 Visual Studio buildtools 的 Windows docker 容器 并将其推送到 gitlab 为我的存储库提供的注册表 Dockerfile escape FROM
  • 使用 php 脚本从不同网站读取文件

    如何从完全不同的服务器读取文件的内容 然后显示内容 我稍后将更改代码以正确地使用返回的信息 您可以使用file get contents http php net file get contents or cURL http php net
  • Keras 的 ImageDataGenerator 是否随机对每个图像应用转换?

    我正在使用 Keras ImageDataGenerator 类训练 CNN 我的代码看起来像这样 from keras callbacks import LearningRateScheduler from keras callbacks