Keras 中输入数据的标准化

2024-02-15

深度学习中的一项常见任务是将输入样本标准化为零均值和单位方差。人们可以使用如下代码“手动”执行规范化:

mean = np.mean(X, axis = 0)
std = np.std(X, axis = 0)
X = [(x - mean)/std for x in X]

然而,除了训练 Keras 模型之外,还必须保留平均值和标准值,以标准化测试数据。既然平均值和标准差是可学习的参数,也许 Keras 可以学习它们?像这样的事情:

m = Sequential()
m.add(SomeKerasLayzerForNormalizing(...))
m.add(Conv2D(20, (5, 5), input_shape = (21, 100, 3), padding = 'valid'))
... rest of network
m.add(Dense(1, activation = 'sigmoid'))

我希望你明白我的意思。


Add 批量归一化 https://keras.io/layers/normalization/作为第一层,它按预期工作,尽管与OP的示例不完全一样。你可以看看详细的解释here https://keras.io/api/layers/normalization_layers/batch_normalization/.

OP 的示例和批量归一化都在推理过程中使用输入数据的学习平均值和标准差。但OP的示例使用了一个简单的平均值,为每个训练样本赋予相同的权重,而BatchNormalization层使用移动平均值,为最近看到的样本赋予比旧样本更多的权重。

重要的是,批量归一化在训练期间的工作方式与 OP 的示例不同。在训练期间,该层使用当前批次输入的平均值和标准差标准化其输出。

第二个区别是 OP 的代码产生均值为 0、标准差为 1 的输出。相反,批量归一化会学习输出的平均值和标准差,从而改善整个网络的损失。要获得 OP 示例的行为,应使用参数初始化批量归一化scale=False and center=False.

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

Keras 中输入数据的标准化 的相关文章

随机推荐

  • 如何使用CSS在占位符中获取星号

    I want to add an asterisk mark to placeholder of inputs Something like this 我已经搜索过互联网但找不到有效的解决方案 我目前的做法 目前我正在尝试将其添加到 aft
  • 很好的黄瓜教程,不依赖于 Rails [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个好的黄瓜教程 它不会强迫我使用 Rails 有什么好的建议吗 我相信Rspec 书 ht
  • 您指定了正确的主机或端口吗? Kubernetes 上的错误

    我已经按照 hello world 教程进行了操作http kubernetes io docs hellonode http kubernetes io docs hellonode 当我跑步时 kubectl run hello nod
  • ggplot2scale_x_连续限制或绝对

    我在循环中使用以下 ggplot2 v0 9 scale x continious 逻辑 按县名称 试图将每个县的数据绘制在具有相同 x 比例的单独图上 MaxDays 365 3 p lt p scale x continuous lim
  • 如何强制 IntelliJ 使用 Maven 下载 javadocs?

    我对项目结构中的一些 Maven 条目有以下描述 文件系统中确实不存在 Javadoc 文件 同时 它存在于中央存储库中 为什么没有下载 如何强制下载 UPDATE 这些选项已经开启 设置后尝试重新编译 关闭 打开等 单击IntelliJ右
  • ARM 皮质:使用位带的互斥体

    鉴于此 在 ARM Cortex M3 上 我可以 原子地读取一位 原子地设置一位 原子地清除一位 如何将这些组合起来形成互斥体样式的操作集 try lock take lock release lock 看起来try lock or ta
  • python 中使用 pandas dataframe 和 statsmodels 或 scipy 进行方差分析?

    我想使用 Pandas 数据框来分解一个变量的方差 例如 如果我有一个名为 度 的列 并且我已针对各种日期 城市以及夜间与白天对其进行了索引 那么我想找出该系列中的变化中有多少部分来自横截面城市变化 有多少来自时间序列变化 有多少来自夜间与
  • CSS:#id .class VS .class 性能。哪个更好?

    我认为这会更快 dialog videoContainer width 100px than videoContainer width 100px 当然不考虑这一点 videoContainer在第一个示例中 只会在以下样式下设置样式 di
  • 非空终止字符数组

    include
  • 使用带有导航器的滑动菜单的 Onsen-UI

    好的 问题是我有一个带页面的工作滑动菜单 现在我的一个页面有一个 ons list 通过单击ons list item 我想导航到带有后退按钮的新页面 我到处搜索但没有找到解决我的问题的任何正确方法 这是我的代码
  • 在集合视图中显示两个不同的单元格 - Swift 2.0 iOS

    我正在开发一个 交易 应用程序 我希望拥有静态数量的单元格 加载时 用户将看到 5 个单元格 每个单元格都显示一个标有 添加 的标签 当添加 玩家 时 该单元格显示玩家信息 其他 4 个单元格仍然显示 添加 标签 另一个是添加的 2个单元格
  • 从node js到django的csrf问题

    我想将 csrftoken 从 node js 传递到 django 我的 server js 中有这段代码 socket on unread global function data var values querystring stri
  • LINQ to SQL 谓词生成器

    我使用 PredicateBuilder 如下所示http www albahari com nutshell predicatebuilder aspx http www albahari com nutshell predicatebu
  • Python Selenium 打印文本字段的值显示为空。该值未打印

    我正在尝试将文本字段的值打印到控制台 该网页的文本字段中的值为 1 000 000 1 000 000 应该打印 但我的方法是打印空白 我正在使用 Python Webdriver 我正在使用 text 它应该获取文本字段的文本值 我的方法
  • 初始化并声明为“extern”,为什么我看到下面的警告? [复制]

    这个问题在这里已经有答案了 为什么我会看到以下警告 警告 i 已初始化并声明为 extern include
  • 使用 renderUI 在 ShinyR 中创建选项卡时如何在不同对象中重用数据集

    我开发了一个闪亮的应用程序 在不同的选项卡下包含几个绘图和数据 选项卡是使用另一个参数动态创建的 但每次我都必须对数据进行子集化以准备绘图 假设使用 mpg 子集数据 我在 mpg 选项卡中绘制了两种不同类型的图表 并且我不想在绘制绘图时每
  • 在美味派视图中暴露“虚拟”字段?

    我想使用 tastypie 创建一个视图来公开相同类型的某些对象 但具有以下 two 三个变化 我需要使用三个单独的查询来获取对象 我需要添加一个底层模型中不存在的字段 该字段的值取决于它来自哪个查询 和 数据将是每个用户的 因此我需要连接
  • wix 在 Windows XP 上安装期间使用了不正确的字体

    在基本安装模式 msiexe i MyInstaller msi qb 期间 我在 MSI 进度对话框中看到的是方框而不是字符 有没有办法更改 基本 MSI 对话框中使用的字体 TTF FontFace 1 微星日志 MSI c A4 EC
  • Pandas 相当于 SQL 中的 GROUP BY HAVING

    在 pandas 中使用 groupby 并并行应用过滤器的最有效方法是什么 基本上我要求 SQL 中的等效项 select group by col name having condition 我认为有很多用例 包括条件均值 总和 条件概
  • Keras 中输入数据的标准化

    深度学习中的一项常见任务是将输入样本标准化为零均值和单位方差 人们可以使用如下代码 手动 执行规范化 mean np mean X axis 0 std np std X axis 0 X x mean std for x in X 然而