如何在 Keras 中创建一个 return 多维值的指标?
How to create a metric in Keras that return a multi-dimensional value?
我正在使用 keras 解决一个多 class 问题。我的数据非常不平衡,所以我试图创建类似于混淆矩阵的东西。我的数据集非常大,并保存为 HDF5,因此我使用 HDF5Matrix 获取 X 和 Y,使 scikit-learn 混淆矩阵变得无关紧要(据我所知)。
我已经看到 , or output the error per label 是可能的,但是更优雅的解决方案是创建一个多维指标来累积(预测的,真实的)标签对(有点像混淆矩阵)。
我使用以下回调来尝试查看每个批次/时期的情况:
from keras.callbacks import LambdaCallback
batch_print_callback = LambdaCallback(on_batch_end=lambda batch, logs:
print(logs),on_epoch_end=lambda epoch, logs: print(logs))
但它只累积一个值(通常是排序的平均值)。
我也试过看看是否可以 return y_pred / y_true 如下(尝试看看我是否可以打印多维值日志):
def pred(y_true, y_pred):
return y_pred
def true(y_true, y_pred):
return y_true
然而,它并不是我预期的 return 多维值
所以基本上,我的问题是,我可以使用 keras 来累积多维指标吗?
我正在使用 keras 解决一个多 class 问题。我的数据非常不平衡,所以我试图创建类似于混淆矩阵的东西。我的数据集非常大,并保存为 HDF5,因此我使用 HDF5Matrix 获取 X 和 Y,使 scikit-learn 混淆矩阵变得无关紧要(据我所知)。
我已经看到
from keras.callbacks import LambdaCallback
batch_print_callback = LambdaCallback(on_batch_end=lambda batch, logs:
print(logs),on_epoch_end=lambda epoch, logs: print(logs))
但它只累积一个值(通常是排序的平均值)。
我也试过看看是否可以 return y_pred / y_true 如下(尝试看看我是否可以打印多维值日志):
def pred(y_true, y_pred):
return y_pred
def true(y_true, y_pred):
return y_true
然而,它并不是我预期的 return 多维值 所以基本上,我的问题是,我可以使用 keras 来累积多维指标吗?