Как интуитивно описать layer_features, специфичные для каждого слоя в Keras (Style Transfer) - PullRequest
0 голосов
/ 27 января 2019

Я пересмотрел текст Chollet Deep Learning с Python после завершения нескольких курсов по ML и нашел его гораздо более доступным.

Однако в главе, посвященной передаче стилей в предварительно обученной сети VGG19,Я не понимаю, как автор манипулирует различными параметрами layer_features для получения потерь содержимого, стиля и изменения.

Отрезанный код (стр. 292) отображается ниже

loss = K.variable(0.)
layer_features = outputs_dict[content_layer]
target_image_features = layer_features[0, :, :, :]
combination_features = layer_features[2, :, :, :]



loss += content_weight * content_loss(target_image_features,
                                  combination_features)
for layer_name in style_layers:
    layer_features = outputs_dict[layer_name]

    style_reference_features = layer_features[1, :, :, :]
    combination_features = layer_features[2, :, :, :]

    sl = style_loss(style_reference_features, combination_features)
    loss += (style_weight / len(style_layers)) * sl

loss += total_variation_weight * total_variation_loss(combination_image)

, учитывая, чтоавтор объединил три тензора изображения вместе, представляющих эталон стиля, эталон контента и выходные выходные изображения. Я считаю, что эти изображения представлены различными индексами переменной layer_features.

Эти функции полученыкак только тензор конкатенированного изображения пройдет через сеть, правильно?

Но я все еще не понимаю, что на самом деле представляет layer_features - мы просто вычитаем выходные карты активации разных изображений друг с другом, чтобы измерить сходство?у

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...