重置张量流流指标的变量

2024-03-23

我有很多流媒体指标(tf.metrics.accuracy and custom http://vict0rsch.github.io/2018/06/06/tensorflow-streaming-multilabel-f1/流媒体micro, macro and weightedF1-分数)。

在训练过程中,我得到了下面的图(不用担心过度拟合)。

发生这种情况是因为要计算我调用的验证集的指标tf.local_variables_initializer重置指标并且仅具有验证集的值。

这意味着 2 个副作用:

  1. 图像中的尖峰
  2. 在验证之间,即使每 2 个时期进行一次验证,训练指标也会不断聚合

我可以通过使用不同的张量来保存每个度量(train 与 val)来部分解决这种情况。但这并不能解决2.

因此我有2 个问题:

  • 根据您的经验,这是您期望看到的行为(还是不?解决方案?)
  • 有没有办法让指标流仅在过去n批次?

如果您在训练之间重置指标,则会出现此行为。 如果训练指标是两个不同的操作,则它们不会聚合验证指标。我将举例说明如何保持这些指标不同以及如何仅重置其中一个指标。


玩具示例:

logits = tf.placeholder(tf.int64, [2,3])
labels = tf.Variable([[0, 1, 0], [1, 0, 1]])

#create two different ops
with tf.name_scope('train'):
   train_acc, train_acc_op = tf.metrics.accuracy(labels=tf.argmax(labels, 1), 
                                                 predictions=tf.argmax(logits,1))
with tf.name_scope('valid'):
   valid_acc, valid_acc_op = tf.metrics.accuracy(labels=tf.argmax(labels, 1), 
                                                 predictions=tf.argmax(logits,1))

训练:

#initialize the local variables has it holds the variables used for metrics calculation.
sess.run(tf.local_variables_initializer())
sess.run(tf.global_variables_initializer())

# initial state
print(sess.run(train_acc, {logits:[[0,1,0],[1,0,1]]}))
print(sess.run(valid_acc, {logits:[[0,1,0],[1,0,1]]}))

#0.0
#0.0

初始状态是0.0正如预期的那样。

现在调用训练操作指标:

#training loop
for _ in range(10):
    sess.run(train_acc_op, {logits:[[0,1,0],[1,0,1]]})  
print(sess.run(train_acc, {logits:[[0,1,0],[1,0,1]]}))
# 1.0
print(sess.run(valid_acc, {logits:[[0,1,0],[1,0,1]]}))
# 0.0

仅更新了训练准确率,而有效准确率仍然存在0.0。调用有效的操作:

for _ in range(10):
    sess.run(valid_acc_op, {logits:[[0,1,0],[0,1,0]]}) 
print(sess.run(valid_acc, {logits:[[0,1,0],[1,0,1]]}))
#0.5
print(sess.run(train_acc, {logits:[[0,1,0],[1,0,1]]}))
#1.0

这里,有效精度更新为新值,而训练精度保持不变。

让我们只重置验证操作:

stream_vars_valid = [v for v in tf.local_variables() if 'valid/' in v.name]
sess.run(tf.variables_initializer(stream_vars_valid))

print(sess.run(valid_acc, {logits:[[0,1,0],[1,0,1]]}))
#0.0
print(sess.run(train_acc, {logits:[[0,1,0],[1,0,1]]}))
#1.0

有效精度重置为零,而训练精度保持不变。

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

重置张量流流指标的变量 的相关文章

  • Nonetype 错误/使用 python 的 beautifulsoup 没有打印任何元素

    所以我尝试使用 python 比较 2 个列表 其中一个包含我从网站获取的 1000 个链接 另一个包含一些单词 这些单词可能包含在第一个列表的链接中 如果是这种情况 我想得到一个输出 我打印了第一个列表 它确实有效 例如 如果链接是 ht
  • Pandas.read_csv() 列名称中带有特殊字符(重音符号)�

    我有一个csv包含一些带有列名称的数据的文件 时期 IAS brut IAS liss 发生率 哨兵 我对第三个有疑问 IAS liss 这是被误解的pd read csv 方法并返回为 那个角色是什么 因为它在我的烧瓶应用程序中生成错误
  • Xgboost:bst.best_score、bst.best_iteration 和 bst.best_ntree_limit 有什么区别?

    当我使用 xgboost 训练我的数据时2 cates classification problem 我想使用提前停止来获得最佳模型 但我对在预测中使用哪一个模型感到困惑 因为提前停止将返回 3 个不同的选择 例如 我应该使用 preds
  • python 函数中的任意数量的参数

    我想学习如何在 python 函数中传递任意数量的参数 所以我以递归方式编写了一个简单的 sum 函数 如下所示 def mySum args if len args 1 return args 0 else return args 1 m
  • 为什么 itertools.chain 比扁平列表理解更快?

    在评论中的讨论中这个问题 https stackoverflow com questions 49630581 why does python forbid the use of sum with strings有人提到 虽然连接字符串序列
  • 使用 BeautifulSoup 在 python 中抓取多个页面

    我已经设法编写代码来从第一页中抓取数据 现在我不得不在这段代码中编写一个循环来抓取接下来的 n 页 下面是代码 如果有人可以指导 帮助我编写从剩余页面中抓取数据的代码 我将不胜感激 Thanks from bs4 import Beauti
  • Python 列联表

    作为我正在编写的项目的一部分 我正在生成很多很多列联表 工作流程是 获取具有连续 浮点 行的大型数据数组 并通过分箱将其转换为离散整数值 例如 结果行的值为 0 9 将两行切片为向量 X 和 Y 并生成列联表 https en wikipe
  • PyCharm 虚拟环境和 Anaconda 环境有什么区别?

    当我在 PyCharm 中创建新项目时 它会创建一个新的虚拟环境 我读到 当我执行Python脚本时 它们是使用此环境中的解释器而不是系统环境来执行的 因此 如果我需要安装一些软件包 我只能将它们安装在这个环境中 而不是在系统环境中 这很酷
  • Python相对导入导致语法错误:无效语法

    我正在尝试安装这个很棒的 python 模块Python Chrono http oss codepoet no python chrono wiki Home我的 python 环境 但至少在 python 2 4 3 和 2 6 6 中
  • 适用于 Web 照片库的正确 NoSQL 数据架构

    我正在寻找为照片库的 NoSQL 存储构建合适的数据结构 在我的网络应用程序中 一张照片可以是一个或多个相册的一部分 我有使用 MySQL 的经验 但几乎没有使用键值存储的经验 使用 MySQL 我将设置 3 个表 如下所示 photos
  • 将文件转换为 Ascii 抛出异常

    后果我之前的问题 https stackoverflow com questions 31742609 how to strip the leading unciode characters from a file 31742694 nor
  • 如何使用不同的类和导入动态地使用 Python 日志记录来更改文件句柄

    我无法执行即时日志文件句柄更改 例如 我有3节课 one py import logging class One def init self txt logging debug Hey I m the class One and I say
  • 没有名为“_pywrap_tensorflow_internal”的模块

    在尝试验证tensorflow gpu的安装时 在尝试执行 import tensorflow as tf 时出现ImportError 我在 Windows 7 上使用 Quadro K620 Tensorflow 是使用 pip 安装的
  • 后视模式无效

    为什么这个正则表达式在 Python 中有效 但在 Ruby 中无效
  • 如何将目录结构解析为字典?

    我有目录结构列表 例如 a b a b c a b c d a b c e a b c f g a b c f h a b c f i 我想将它转换成像树结构一样的字典 a b c d None e None f g None h None
  • 无需重新计算即可获取字典键哈希

    有没有办法从字典中提取现有的密钥哈希 而无需再次重新计算它们 暴露它们并因此通过哈希而不是密钥访问字典会有什么风险 我认为 Python 的字典对象没有任何公共 API 可以让您查看存储其对象的哈希值 您无法在 Python 代码中直接通过
  • 计算具有不均匀间隔点的 3D 梯度

    我目前有一个由几百万个不均匀间隔的粒子组成的体积 每个粒子都有一个属性 对于那些好奇的人来说是潜力 我想计算其局部力 加速度 np gradient 仅适用于均匀分布的数据 我在这里查看 numpy 中的二阶梯度 https stackov
  • 在 Python 的内置数字类型上,repr 和 str 总是相同吗?

    Are repr and strPython 内置数字类型相同 int bool float and complex 或者是否存在 深奥的 两者可能产生不同结果的情况 SO的相关问题 例如this one https stackoverfl
  • 如何获得 GTK 中的默认颜色?

    Context 在 GTK 3 中 人们可以设置自己的主题 甚至默认主题 Adwaita 也提供两种变体 浅色和深色 当我编写自己的小部件 用Python 时 我需要获取这些颜色以避免在黑色上绘制黑色或在白色上绘制白色 Question 如
  • 识别输入的数据类型

    我正在尝试打印用户输入的数据类型并生成如下表 ABCDEFGH String 1 09 float 0 int true bool etc 我正在使用 Python 3 2 3 并且我知道我可以使用type 获取数据的类型 但在Python

随机推荐

  • 星号传入消息给出:415 不支持的媒体类型

    我和我的项目组正在尝试设置带有星号的 PBX 我们已经设法让它仅适用于 SIP 呼叫 而且效果非常完美 但是一旦我们想尝试向其中添加 XML 消息 Asterisk 就无法识别它并给出 415 不支持的媒体类型 看起来这个电话甚至没有打通
  • Visual Studio 代码调试控制台颜色?

    调试node js代码时 有没有办法在Visual Studio Code 版本1 10 2 的调试控制台中显示颜色 就像在终端中一样 要在 Visual Studio 中从 NodeJS 输出彩色消息 您可以在 console log 方
  • SQL 重命名表命令

    我可以跑RENAME TABLE student TO student new 该命令是相同的并且易于遵循 有没有一种方法可以用简单的命令重命名很多表 假设所有表都属于同一个数据库名称 我不需要写很多代码 如下所示 RENAME TABLE
  • formview 内的 AJAX Tabcontainer 不插入值

    我在数据绑定 FormView 中有一个 TabContainer 按类别显示信息 例如 客户生物数据 健康历史记录 财务详细信息 formView 的更新和插入不起作用 将 NULL 值发布到数据库 我猜 FormView 无法在选项卡容
  • 如何在 RxJS 中实现时间到期热可观察(或在响应式扩展中通用)

    我想用 RxJs 实现时间过期缓存 这是 正常 缓存的示例 let this represents heavy duty job var data Rx Observable return Math random 1000 delay 20
  • Rails 3 具有变量命名空间的路由资源

    是否可以有一个变量命名空间 我有如下的宁静资源 resources articles resources persons 但我需要将它们限定在变量命名空间内 以便它响应以下形式的 URL edition controller action
  • 从我的 Android 应用程序中的网页获取点击事件

    我正在创建一个带有按钮的示例网页 该网页正在 Android 中使用 webview 进行调用 现在 当我单击网页上的按钮 即 html 按钮 时 我应该能够在 Android 中执行一些代码 如何进行 public class web e
  • 如何使用 Google Apps 脚本将 Google 表格单元格中的文本字符串解析为 CSV 文件?

    我在使用 Google Apps 脚本解析 Google 表格单元格中的字符串时遇到问题 我使用了JavaScript方法Array indexOf 但未能找到单元格中字符串中存在的字符 我尝试在单元格中字符串的字母之间插入下划线 但每个单
  • Linq 每次迭代选择 5 个项目 [重复]

    这个问题在这里已经有答案了 Linq 根据我们的枚举器每次选择 5 项 我们的清单例如 theList has 100 件 想要浏览列表并每次迭代选择 5 个项目 示例代码 我们希望将其更改为我们想要的结果 theList dt AsEnu
  • 使用具有belongsTo关系的访问器变元

    使用 Laravel 4 我在我的 User 模型中设置了一个 mutator public function getFullnameAttribute value return this gt first name this gt las
  • 当处理程序已经存在并绑定时,JQuery stopPropagation on .live()

    我知道文档中会出现实时通话 这就是我遇到问题的原因 不幸的是 我正在使用绑定元素的第三方库 并且希望创建一个单击事件不会冒泡到这些元素的情况 将 click 与 eventStopPropogation 结合使用效果很好 但是由于内容的动态
  • 使用 PySide2 在 QTableView 中设置文本样式

    我有一个 QTableView 填充了正确的模型 我想根据上下文更改文本的样式 文本 如果括号之间有内容 则这部分文本应更改为绿色 包括括号 并且粗体 只要它不难 如果您可以提供一个片段或超级简单的示例 我将不胜感激 您必须使用一个委托来使
  • CosmosDB C# SDK ProyUrl 缺失

    我正在 NET Core 中开发一个针对 Azure 的容器化微服务项目 docker 因此 我们使用 Azure Cosmos DB 和 CoreSql Api 的 C Cosmos DB SDK v2 4 因为 v3 仅处于预览版 在开
  • 如何从包含 XML 的字符串中删除第一行?

    我有一个包含 XML 的字符串 我想删除它的第一行并将其保存回 String 我怎样才能做到这一点 Thanks 假设您想要删除字符串末尾的新行 您可以执行以下操作 s s substring s indexOf n 1 当没有新的线路时
  • 如何配置 jdee `find-class-source-file` 以与 Cassandra 源树一起使用?

    我正在尝试为我即将开始的 Java 项目设置 Emacs JDEE 但我无法让 JDEE 正常工作 我想要解决的第一个问题是能够跳转到给定类名的源文件 我正在使用卡桑德拉 http cassandra apache orgsource 作为
  • Jquery 点击图像时切换

    我想了解 jquery 切换是如何工作的 我想切换到下一个锚点plr anchor单击带有类的图像go down 数据是使用地图填充的 Jquery代码 go down on click function e plr anchor next
  • C# 在txt文件中搜索字符串

    我想在 txt 文件中找到一个字符串 如果字符串比较 它应该继续读取行 直到我用作参数的另一个字符串 Example CustomerEN search for this string some text which has details
  • 使用 DirectShow 捕获帧并使用 OpenCV 进行处理

    我为视频到图像捕获制作了两种不同的解决方案 并且想知道是否可以将两个世界的优点结合在一起 我目前正在使用 DirectShow 加载 AVI 文件并捕获图像 然而 DirectShow 缺乏图像处理功能并且需要制作额外的滤镜 这让我陷入了困
  • 将数据从一个数据表复制到另一个具有不同结构的数据表的最佳方法

    我正在将数据从 DataTable 复制到另一个具有结构的 DataTable 我必须在循环中对列号进行硬编码 并将数据复制到对象数组中 实现这一目标的最佳方法是什么 IEnumerable
  • 重置张量流流指标的变量

    我有很多流媒体指标 tf metrics accuracy and custom http vict0rsch github io 2018 06 06 tensorflow streaming multilabel f1 流媒体micro