Keras:如何将y_pred和y_true分为三个

时间:2019-04-15 03:11:22

标签: python keras deep-learning

我正在使用Keras,并且想使用自定义损失函数

我正在尝试将y_pred和y_true分为三部分,每个部分的长度是原始长度的1/3

这是我的代码,但返回错误(“ nan”丢失):

def create_loss_function_custom(len_train):
            tier_1 = int(len_train/3)
            tier_2 = int(len_train*2/3)
            def loss_function_custom(y_true, y_pred):
                y_pred_1 = y_pred[:, :tier_1]
                y_pred_2 = y_pred[:, tier_1:tier_2]
                y_pred_3 = y_pred[:, tier_2:]

                y_true_1 = y_true[:, :tier_1]
                y_true_2 = y_true[:, tier_1:tier_2]
                y_true_3 = y_true[:, tier_2:]

                loss_1= K.mean(K.binary_crossentropy(y_true_1,y_pred_1))
                loss_2 = K.mean(K.binary_crossentropy(y_true_2,y_pred_2))
                loss_3 = K.mean(K.binary_crossentropy(y_true_3, y_pred_3))


                return K.max([loss_1,loss_2,loss_3])
            return loss_function_custom

如何执行此操作?

我正在使用theano后端

0 个答案:

没有答案