问题标签 [keras-metrics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
912 浏览

machine-learning - Keras categorical_accuracy 指标的输出是什么?

我找不到指标输出的正确描述。

例如,如果我使用

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

然后我得到损失和准确性tr_loss, tr_acc = model.train_on_batch(X, Y)

如果我编译,metrics=['categorical_accuracy']那么我也会得到 2 个数字,

但它们是什么?

编辑:我这样做了:print(model.metrics_names)并得到:['loss', 'categorical_accuracy']

0 投票
1 回答
257 浏览

tensorflow2.0 - 如何在 Tensorflow 2.0 中使用误报指标?

在 Tensorflow 2.0 中,我正在尝试构建一个模型,将我的对象分为两类:正面和负面。

我想使用tf.keras.metrics.FalsePositivestf.keras.metrics.FalseNegatives指标来查看模型如何随着每个时期的改进而改进。这两个指标都有断言规定:[predictions must be >= 0][predictions must be <= 1]

问题是未经训练的模型可以生成任意数字作为预测。但即使是经过训练的模型有时也会产生略高于 1 或略低于 0 的输出。

有没有办法禁用这些断言?

或者,是否有任何合适的激活函数可以强制模型输出进入[0, 1]范围而不会导致学习率出现任何问题?

0 投票
0 回答
96 浏览

python - 具有 tensorflow 功能的自定义 keras 指标。未初始化的变量

我在 tensorflow 1.14 中运行具有自定义指标的模型,但我遇到了未初始化变量的问题。

在此处输入图像描述

这些错误是在指标中提出的,我希望我只是遗漏了一些简单的东西。任何帮助,将不胜感激。

0 投票
1 回答
78 浏览

tensorflow - 将自定义 keras 指标输入分成两个单独的指标并找到中值误差

我有一个用于相机姿势网络的 ResNet 网络。我已经用 1024 密集层替换了最后的分类器层,然后是 7 密集层(前 3 个用于 xyz,最后 4 个用于四元数)。

我的问题是我想将 xyz 误差和四元数误差记录为两个单独的误差或指标(而不是仅仅意味着所有 7 个的绝对误差)。customer_error(y_true,y_pred) 的自定义度量模板的输入是张量。我不知道如何将输入分成两个不同的 xyz 和 q 数组。该函数在编译时运行,此时张量为空且没有任何 numpy 组件。

最终我想得到中位数 xyz 和 q 误差使用

中值 = tensorflow_probability.stats.percentile(输入,q=50,插值='线性')。

任何帮助将非常感激。

0 投票
2 回答
2690 浏览

validation - tf.keras.metrics.MeanIoU 与 sigmoid 层

我有一个用于语义分割的网络,我的模型的最后一层应用了 sigmoid 激活,因此所有预测都在 0-1 之间缩放。有这个验证指标 tf.keras.metrics.MeanIoU(num_classes),它将分类预测(0 或 1)与验证(0 或 1)进行比较。因此,如果我进行预测并应用此指标,它会自动将连续预测映射到阈值 = 0.5 的二进制吗?是否有可能手动定义阈值?

0 投票
1 回答
78 浏览

tensorflow - 训练期间残差不为零的 TensorFlow 指标

目前,我正在使用 tensorflow 和来自 keras 应用程序的 ImageNet 预训练 EfficientNetB0 研究图像错误分类器。作为指标,我使用的是假阳性 (fp)、真阳性 (tp)、假阴性 (fn)、真阴性 (tn)……我对 fp、tp、fn 和 tn 等指标的问题是它们在训练期间不是真正的整数值(即 tp = 4883.6257),只有在验证期间它们才是整数值。据我所知,这些指标应该始终是整数,因为它们只是假阳性预测样本的数量。有什么我错过了 keras 在训练期间计算这些值的功能吗?

作为输入管道,我使用 tensorflow ImageDataGenerator 和 .flow_from_dataframe() 函数:

设置模型:

为了更好地分析,我添加了以下指标:

0 投票
1 回答
1208 浏览

python - Keras 模型的自定义指标,使用 Tensorflow 2.1

我想添加一个自定义指标来使用 Keras 建模,我正在调试我的工作代码,但我找不到执行所需操作的方法。

该问题可以描述为通过逻辑多项式回归进行的多分类。我想实现的自定义指标是这样的:

其中 Number_of_Classes 必须从批次计算,即类似于np.unique(y_true).count()and 并且每个求和项都类似于

就混淆矩阵而言(以 2 个变量的最小形式)

公式是0.5*(15)/(15+12) + 0.5*(1/(1+3))=0.4027

代码可能类似于

我的预处理数据是一个像 numpy 的数组x=[v1,v2,v3,v4,...,vn],而我的目标列是一个 numpy 数组y=[1, 0, 1, 0, 1, 0, 0, 1 ,..., 0, 1]

然后,它们被转换为张量:

然后,它们被转换为 tensorflow 数据集对象:

后来,我拿了一个迭代器:

最后,我采用迭代器的一个元素并训练

因此,由于对象是数据集迭代器,我无法找到按我的意愿操作它们的函数,以便获得所描述的自定义指标。

类型(y_pred)

0 投票
0 回答
24 浏览

keras - 应用一些增强层后,真阳性和假阳性分数下降到零

我试图使用 Keras 实现一种简单形式的 DexiNed 架构。由于 BIPED 数据集有 200 个训练图像和 50 个测试图像,我想在训练模型之前应用一些增强层。然而,当我尝试这个时,TP 和 FP 分数在 2-3 个 epoch 后变为 0,并且从未增加。当我在不使用增强的情况下进行训练时,结果证明是正确的,并且模型运行良好。为什么当我扩充数据集时这个分数会降低。

这些是我使用的图层。我什至只尝试了 1-2 层,但结果没有改变。

这是扩充数据集后的分数

0 投票
0 回答
54 浏览

python - 通过张量流度量跟踪 SSD 中每个类的误报数

我正在尝试使用张量流度量来跟踪 SSD 网络在训练/验证期间产生了多少误报。

我尝试自己编写,但是当它应该产生一个整数时它会输出一个浮点数(例如,有 1.3 个假阴性预测没有意义)。这告诉我我的代码要么做错了事,要么 tensorflow 正在添加一个我没有补偿的标量。代码如下。

我还尝试使用我已经为其他类型的指标工作的内置指标。问题是 SSD 输出张量的输出具有传递给度量的形状,每个项目都有形状(#boxes,#classes),而内置的tf.keras.metrics.FalseNegatives度量类期望单个值输入.

归根结底,我这样做是为了了解网络在哪里出现问题,这样我就可以看看添加其他类型的类是否会改善它。如果有更好的方法,请告诉我!这是我的第一个迁移学习项目

代码。为传递给构建器函数的每个类生成假阴性度量,该构建器函数为每个类返回一个度量函数。通常,这还包括其他指标,但我在这里对其进行了修剪,仅包括计算 # 假阴性:

以下是在训练之前传递指标的方式: