为Keras

时间:2017-04-30 16:14:07

标签: deep-learning keras

Keras提供categorical_accuracysparse_categorical_accuracytop_k_categorical_accuracy指标。

我想定义top_k_categorical_accuracy稀疏版本。

我的暂定实施如下:

def top_k_sparse_categorical_accuracy(y_true, y_pred, z=5):
    return K.mean(K.in_top_k(y_pred, K.max(y_true, axis=-1), z), axis=-1)

这是在top_k_categorical_accuracysparse_categorical_accuracy

之后建模的
def sparse_categorical_accuracy(y_true, y_pred):
return K.cast(K.equal(K.max(y_true, axis=-1),
                      K.cast(K.argmax(y_pred, axis=-1), K.floatx())),
              K.floatx())

def top_k_categorical_accuracy(y_true, y_pred, k=5):
    return K.mean(K.in_top_k(y_pred, K.argmax(y_true, axis=-1), k), axis=-1)

但是,这不起作用,因为K.in_top_k的第二个参数应该是一个整数的张量,这里我有一个浮点张量,K.cast只能转向浮点数。

有没有办法在Keras后端执行强制转换?或者是否有另一种方法来实现此指标?

0 个答案:

没有答案