Keras上的自定义损失函数-Python

时间:2019-06-01 11:37:40

标签: python keras loss-function

我需要在Python中使用keras实现自定义损失功能。我已经在另一个website上找到了一个示例。但是,这并不完全容易理解。我对这些密集和输入工具不是很熟悉。你们中的任何人都可以评论我找到的代码并帮助理解它吗?此外,如何初始化inputlayer1layer2?每当我更改代码中的某些内容时,都会收到一堆错误。

# Build a model
inputs = Input(shape=(128,))
layer1 = Dense(64, activation='relu')(inputs)
layer2 = Dense(64, activation='relu')(layer1)
predictions = Dense(10, activation='softmax')(layer2)
model = Model(inputs=inputs, outputs=predictions)

# Define custom loss
def custom_loss(layer):

    # Create a loss function that adds the MSE loss to the mean of all squared activations of a specific layer
    def loss(y_true,y_pred):
        return K.mean(K.square(y_pred - y_true) + K.square(layer), axis=-1)

    # Return a function
    return loss

# Compile the model
model.compile(optimizer='adam',
              loss=custom_loss(layer), # Call the loss function with the selected layer
              metrics=['accuracy'])

# train
model.fit(data, labels) 

0 个答案:

没有答案