相关疑难解决方法(0)

在keras中制作自定义丢失功能

嗨,我一直在尝试在keras中为dice_error_coefficient创建自定义丢失函数.它有它的实现tensorboard,我尝试使用相同的功能与tensorflow keras但它一直返回NoneType当我用model.train_on_batchmodel.fit其中在模型中的指标使用时,它提供正确的价值观.可以请有人帮我解决我该怎么办?我曾经尝试过像ahundt这样的Keras-FCN这样的库,在那里他使用了自定义丢失函数,但似乎都没有.代码中的目标和输出分别是y_true和y_pred,如keras中的losses.py文件中所使用的那样.

def dice_hard_coe(target, output, threshold=0.5, axis=[1,2], smooth=1e-5):
    """References
    -----------
    - `Wiki-Dice <https://en.wikipedia.org/wiki/Sørensen–Dice_coefficient>`_
    """

    output = tf.cast(output > threshold, dtype=tf.float32)
    target = tf.cast(target > threshold, dtype=tf.float32)
    inse = tf.reduce_sum(tf.multiply(output, target), axis=axis)
    l = tf.reduce_sum(output, axis=axis)
    r = tf.reduce_sum(target, axis=axis)
    hard_dice = (2. * inse + smooth) / (l + r + smooth)
    hard_dice = tf.reduce_mean(hard_dice)
    return hard_dice
Run Code Online (Sandbox Code Playgroud)

python machine-learning keras tensorflow

30
推荐指数
2
解决办法
4万
查看次数

Keras Custom Metric用于单级精度

我正在构建一个自定义指标来测量培训期间我的多类数据集中一个类的准确性.我在选择课程时遇到了麻烦.

目标是一个热点(例如:0级标签是[1 0 0 0 0]:

from keras import backend as K

def single_class_accuracy(y_true, y_pred):
    idx = bool(y_true[:, 0])              # boolean mask for class 0 
    class_preds = y_pred[idx]
    class_true = y_true[idx]
    class_acc = K.mean(K.equal(K.argmax(class_true, axis=-1), K.argmax(class_preds, axis=-1)))  # multi-class accuracy  
    return class_acc
Run Code Online (Sandbox Code Playgroud)

麻烦的是,我们必须使用Keras函数来索引张量.如何为张量创建布尔掩码?谢谢.

python neural-network keras tensorflow

15
推荐指数
1
解决办法
7099
查看次数

Keras 自定义指标迭代

我对 Keras 很陌生,我正在尝试定义自己的指标。它计算一致性指数,这是回归问题的衡量标准。

def cindex_score(y_true, y_pred):
    sum = 0
    pair = 0    
    for i in range(1, len(y_true)):
        for j in range(0, i):
            if i is not j:
                if(y_true[i] > y_true[j]):
                  pair +=1
                  sum +=  1* (y_pred[i] > y_pred[j]) + 0.5 * (y_pred[i] == y_pred[j])
    if pair is not 0:
        return sum/pair
    else:
        return 0


def baseline_model(hidden_neurons, inputdim):
    model = Sequential()
    model.add(Dense(hidden_neurons, input_dim=inputdim, init='normal', activation='relu'))
    model.add(Dense(hidden_neurons, init='normal', activation='relu'))
    model.add(Dense(1, init='normal')) #output layer

    model.compile(loss='mean_squared_error', optimizer='adam', metrics=[cindex_score])
    return model

def run_model(P_train, Y_train, P_test, …
Run Code Online (Sandbox Code Playgroud)

python neural-network deep-learning keras

6
推荐指数
1
解决办法
4757
查看次数