Изменения

Перейти к: навигация, поиск

Neural Style Transfer

98 байт добавлено, 18 апрель
Функция потерь на основе корреляции матриц Грама
Теперь, как вы можете видеть, как каждый элемент матрицы Грама содержит меру корреляции всех каналов относительно друг друга. Обозначим матрицу Грама стилевого изображения слоя <math>l</math> как <math>GM[l](S)</math>, а матрицу Грама сгенерированного изображения того же слоя <math>GM[l](G)</math>. Обе матрицы были вычислены из одного и того же слоя, следовательно, с использованием одного и того же числа каналов, что привело к тому, что итоговая матрица размера <math>channels \times channels</math>. Теперь, если мы найдем сумму квадратов разности или L2-норму вычитания элементов этих двух матриц и попытаемся минимизировать ее, то в конечном итоге это приведет к минимизации разницы между изображением стиля и сгенерированным изображением.
<math>L_{GM}(S, G, l) = \frac{1}{4N_l^2M_l^2} \sum\limits_{ij}(GM[l](S)_{ij} - GM[Файл:Image10.jpeg|500px|center]l](G)_{ij})^2</math>
В вышеприведенном уравнении <math>N_{l}</math> представляет номер канала в карте признаков / выходных данных уровня <math>l</math>, а <math>M_{l}</math> представляет <math>height*width</math> карты признаков / выходных данных слоя <math>l</math>.
Так как при вычислении потери стиля мы используем несколько уровней активации, это позволяет назначать разные весовые коэффициенты для потери на каждом уровне.
[[Файл:Image11.jpeg|500px|center]]<math>L_{style}(S, G) = \sum\limits_{l=0}^L w_l * L_{GM}(S, G, l)</math>
== Пример кода на PyTorch ==
Анонимный участник

Навигация