我有一个多类分类问题。我的keras模型在预测结束时给出了连续向量。你知道吗
下面是我在numpy-based中的代码,用于从模型.预测.
所以,我尝试在keras度量中计算TP,FP,FN,我可以从keras.evaluate
得到。你知道吗
使用的Numpy代码段:
# y_true is one hot of classes.
# Continuos values
y_pred_continuos = model.predict(xfeature)
# Discrete Values
y_pred = np.zeros_like(y_pred_continuos)
y_pred[np.arange(len(y_pred_continuos)), y_pred_continuos.argmax(1)] = 1
cur_TP = np.multiply(y_true,y_pred)
cur_FP = y_pred - cur_TP
cur_FN = y_true - cur_TP
cur_TP = cur_TP.sum(axis=0)
cur_FP = cur_FP.sum(axis=0)
cur_FN = cur_FN.sum(axis=0)
是的,你的pred将在keras Custom Metrics中可用。
在凯拉斯,我试过:
from keras import backend as K
import numpy as np
cy_true = np.array([[0,0,1,0],[0,0,0,1]])
cy_pred = np.random.normal(size=8).reshape(2,4)
y_true = K.variable(cy_true,)
y_pred = K.variable(cy_pred)
y_pred_discrete = K.zeros_like(y_pred)
我不知道如何循环找到一个热的连续向量。你知道吗
同样使用scikit learn的分类报告,我也可以得到相同的结果。要做到这一点,我必须通过保存预测和分析来运行Keras度量。你知道吗
但我希望它们作为keras度量,找到TP,FP,FN,TN来进行多类分类。你知道吗
我为多标签分类编写了它们,其中我只对预测进行排序,然后选择top k
但在多类的情况下,我不知道如何循环一个keras张量。你知道吗
如果我在Keras Metric本身中找到它们,那么我可以使用BaseAccumulator在Keras中编写一个回调,以在批中累积值,并且在epoch结束时,我也可以得到Metric F1,也可以用来监视我的训练过程。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐