Пользовательская функция потери на Keras - Python - PullRequest
0 голосов
/ 01 июня 2019

Мне нужно реализовать пользовательскую функцию потерь с помощью keras в Python. Я уже нашел на другом сайте пример. Однако это не совсем легко понять. Я не очень знаком с этими инструментами для плотного ввода и ввода Кто-нибудь из вас может прокомментировать код, который я нашел, и помочь понять его? Кроме того, как я могу инициализировать input, layer1 и layer2? Всякий раз, когда я что-то изменяю в коде, я получаю кучу ошибок.

# 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) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...