我想创建一个自定义函数,以排除某些标签预测不正确但应排除在准确性值中的特殊情况。
如果预测和true_value属于列表,则不要将其视为错误。在下面的示例中,如果y_true!= y_pred但都属于标签列表,则这不被视为错误。
numpy可以表示为:
def excluding_list( y_true, y_pred):
labels = [ 1, 5, 9, 11]
errors = (y_true != y_pred) & ~(np.isin( y_true, labels) & np.isin(y_pred, labels))
acc = 1- errors.sum()/len(errors)
return acc
我不知道如何使用Keras后端(tensorflow)管理此操作以能够进行编译:
import keras.backend as K
model.compile(
optimizer = ...
loss= 'sparse_categorical_crossentropy',
metrics= ['accuracy', excluding_list ]
)