Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Состязательные сети. Проекты

Покупка
Артикул: 739792.01.99
Доступ онлайн
899 ₽
В корзину
В книге представлены сквозные проекты построения порождающих состязательных сетей (GAN), способных к самообучению. Структура книги предусматривает повышение уровня сложности от главы к главе. Читатель узнает о том, что такое состязательные сети и как они обучаются генерировать 3D-формы, создавать анимационных персонажей и реалистичные фотоизображения, превращать картины в фотографии и делать многое другое. Издание предназначено для специалистов по данным и машинному обучению, а также для тех, кого интересуют принципы работы и перспективы развития искусственного интеллекта.
Ахирвар, К. Состязательные сети. Проекты : практическое пособие / К. Ахирвар ; пер. с анг. В. А. Яроцкого. - Москва : ДМК Пресс, 2020. - 252 с. - ISBN 978-5-97060-783-1. - Текст : электронный. - URL: https://znanium.com/catalog/product/1094944 (дата обращения: 19.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Кайлаш Ахирвар

Состязательные сети.  
Проекты

BIRMINGHAM – MUMBAI

Kailash Ahirwar

Generative Adversarial  
Networks Projects

Build next-generation generative models 
using TensorFlow and Keras

Кайлаш Ахирвар

Москва, 2020

Состязательные сети. 
Проекты

Постройте порождающие сети следующего поколения, 
используя библиотеки TensorFlow и Keras

УДК 004.89
ББК 32.972
А95

Ахирвар К.
А95 
Состязательные сети. Проекты / пер. с анг. В. А. Яроцкого. – М.: ДМК Пресс, 
2020. – 252 с.: ил. 

ISBN 978-5-97060-783-1

В книге представлены сквозные проекты построения порождающих состязательных 
сетей (GAN), способных к самообучению.
Структура книги предусматривает повышение уровня сложности от главы к главе. 
Читатель узнает о том, что такое состязательные сети и как они обучаются генерировать 
3D-формы, создавать анимационных персонажей и реалистичные фотоизображения, 
превращать картины в фотографии и делать многое другое.
Издание предназначено для специалистов по данным и машинному обучению, 
а также для тех, кого интересуют принципы работы и перспективы развития искусственного интеллекта.

УДК 004.89
ББК 32.972

Authorized Russian translation of the English edition of Generative Adversarial Networks 
Projects ISBN 9781789136678 © 2019 Packt Publishing.
This translation is published and sold by permission of Packt Publishing, which owns or 
controls all rights to publish and sell the same.

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения 
владельцев авторских прав.

ISBN 978-1-78913-667-8 (анг.) 
© 2019 Packt Publishing
ISBN 978-5-97060-783-1 (рус.) 
© Оформление, издание, перевод, ДМК Пресс, 2020

Содержание

Об авторе ........................................................................................................................ 10

О рецензенте ................................................................................................................. 11

Предисловие .................................................................................................................. 12

Глава 1. Введение в порождающие состязательные сети ........................ 16
Что такое порождающие сети ............................................................................................ 16
Что такое сеть генератора ............................................................................................. 16
Что такое сеть дискриминатора .................................................................................... 17
Обуче ние сети GAN посредством состязательной игры ............................................. 17
Практические применения сетей GAN ............................................................................. 17
Детализация архитектуры сети GAN ................................................................................. 18
Архитектура генератора ................................................................................................ 19
Архитектура дискриминатора ...................................................................................... 20
Важные понятия, связанные с сетью GAN.................................................................... 21
Алгоритмы оценки ......................................................................................................... 23
Варианты сетей GAN .......................................................................................................... 25
Глубокие порождающие состязательные сети свертки ............................................... 25
Сеть StackGAN ................................................................................................................ 25
Сеть CycleGAN ................................................................................................................. 25
Сеть 3D-GAN ................................................................................................................... 26
Сеть Age-cGAN ................................................................................................................ 26
Сеть pix2pix ..................................................................................................................... 26
Преимущества сетей GAN .................................................................................................. 27
Проблемы обуче ния сетей GAN ......................................................................................... 27
Режим коллапса .............................................................................................................. 27
Исчезающие градиенты ................................................................................................. 28
Внутренний ковариантный сдвиг ................................................................................. 28
Решение проблем стабильности при обуче нии сетей GAN ............................................. 29
Соответствие характеристик ......................................................................................... 29
Мини-пакетная дискриминация .................................................................................. 29
Усреднение истории....................................................................................................... 31
Одностороннее сглаживание маркировки ................................................................... 31
Пакетная нормализация ................................................................................................ 31
Нормализация образцов ................................................................................................ 32
Резюме ................................................................................................................................. 33

Глава 2. Сеть 3D-GAN – генерация форм 3D  
с использованием сетей GAN ................................................................................. 34
Введение в сети 3D-GAN .................................................................................................... 34
Свертки 3D ...................................................................................................................... 35

 Содержание

Архитектура сети 3D-GAN ............................................................................................. 35
Целевая функция ............................................................................................................ 40
Обуче ние сетей 3D-GAN ................................................................................................ 40
Создание проекта ............................................................................................................... 40
Подготовка данных ............................................................................................................. 41
Загрузка и извлечение набора данных ......................................................................... 41
Изучение набора данных ............................................................................................... 42
Реализация сети 3D-GAN в Keras ....................................................................................... 45
Сеть генератора .............................................................................................................. 45
Сеть дискриминатора .................................................................................................... 46
Обуче ние сети 3D-GAN ....................................................................................................... 48
Обуче ние сетей ............................................................................................................... 48
Сохранение моделей ...................................................................................................... 51
Тестирование моделей ................................................................................................... 51
Визуализация потерь ..................................................................................................... 52
Визуализация графов ..................................................................................................... 53
Оптимизация гиперпараметров........................................................................................ 53
Практическое применение сетей 3D-GAN ........................................................................ 54
Резюме ................................................................................................................................. 55

Глава 3. Старение лица с использованием условной сети сGAN ........... 56
Введение в сети cGAN для старения лица ......................................................................... 56
Понимание сетей cGAN ................................................................................................. 57
Архитектура сети Age-cGAN .......................................................................................... 58
Этапы обуче ния сети Age-cGAN .................................................................................... 59
Создание проекта ............................................................................................................... 60
Подготовка данных ............................................................................................................. 61
Загрузка набора данных ................................................................................................ 62
Извлечение набора данных ........................................................................................... 62
Реализация сети Age-cGAN в Keras .................................................................................... 63
Сеть кодировщика .......................................................................................................... 64
Сеть генератора .............................................................................................................. 66
Сеть дискриминатора .................................................................................................... 69
Обуче ние сетей cGAN ......................................................................................................... 71
Обуче ние сети cGAN ...................................................................................................... 71
Аппроксимация начального скрытого вектора ........................................................... 77
Оптимизация скрытого вектора ................................................................................... 79
Визуализация потерь ..................................................................................................... 81
Визуализация графов ..................................................................................................... 82
Практические применения сетей Age-cGAN .................................................................... 82
Резюме ................................................................................................................................. 83

Глава 4. Создание анимационных персонажей  
с использованием сети DCGAN .............................................................................. 84
Введение в сети DCGAN ..................................................................................................... 85
Детали архитектуры сети DCGAN ................................................................................. 85
Создание проекта ............................................................................................................... 92

Содержание  7

Загрузка и подготовка набора данных анимационных персонажей .............................. 93
Загрузка набора данных ................................................................................................ 93
Изучение набора данных ............................................................................................... 93
Обрезка и изменение размера изображений в наборе данных .................................. 94
Реализация сети DCGAN с использованием Keras ............................................................ 96
Генератор ........................................................................................................................ 96
Дискриминатор .............................................................................................................. 98
Обуче ние сети DCGAN .......................................................................................................101
Загрузка образцов .........................................................................................................101
Построение и компиляция сетей .................................................................................102
Обуче ние сети дискриминатора ..................................................................................104
Обуче ние сети генератора ............................................................................................104
Генерация изображений ...............................................................................................105
Сохранение модели .......................................................................................................106
Визуализация генерированных изображений ............................................................107
Визуализация потерь ....................................................................................................108
Визуализация графов ....................................................................................................109
Настройка гиперпараметров ........................................................................................109
Практические применения сети DCGAN .........................................................................110
Резюме ................................................................................................................................111

Глава 5. Использование сетей SRGAN для создания  
реалистичных фотоизображений .......................................................................112
Введение в сети SRGAN .....................................................................................................113
Архитектура сети SRGAN ..............................................................................................113
Целевая функция обуче ния ..........................................................................................117
Создание проекта ..............................................................................................................118
Загрузка набора данных CelebA ........................................................................................119
Реализация сети SRGAN в Keras ........................................................................................120
Сеть генератора .............................................................................................................120
Сеть дискриминатора ...................................................................................................124
Сеть VGG19 .....................................................................................................................127
Состязательная сеть ......................................................................................................128
Обуче ние сети SRGAN .......................................................................................................129
Построение и компиляция сетей .................................................................................129
Обуче ние сети дискриминатора ..................................................................................132
Обуче ние сети генератора ............................................................................................132
Сохранение моделей .....................................................................................................133
Визуализация генерированных изображений ............................................................134
Визуализация потерь ....................................................................................................135
Визуализация графов ....................................................................................................136
Практическое применение SRGAN ...................................................................................137
Резюме ................................................................................................................................137

Глава 6. Сети StackGAN – cинтез текста в реалистичные  
фотоизображения ......................................................................................................138
Введение в сети StackGAN .................................................................................................138
Архитектура сети StackGAN ..............................................................................................139

 Содержание

Сеть кодировщика текста .............................................................................................140
Блок расширения условий ............................................................................................140
Этап I ..............................................................................................................................141
Этап II .............................................................................................................................145
Создание проекта ..............................................................................................................151
Подготовка данных ............................................................................................................152
Загрузка набора данных ...............................................................................................152
Извлечение набора данных ..........................................................................................152
Изучение набора данных ..............................................................................................153
Реализация сети StackGAN в Keras ...................................................................................153
Этап I ..............................................................................................................................153
Этап II .............................................................................................................................161
Обуче ние сети StackGAN ...................................................................................................169
Обуче ние сети StackGAN этапа I ..................................................................................169
Обуче ние сети StackGAN этапа II .................................................................................176
Визуализация генерируемых изображений ................................................................180
Визуализация потерь ....................................................................................................181
Визуализация графов ....................................................................................................182
Практические применения сети StackGAN ......................................................................182
Резюме ................................................................................................................................183

Глава 7. Сети CycleGAN – превращение картин в фотографии ..............184
Введение в сети CycleGAN .................................................................................................185
Архитектура сети CycleGAN .........................................................................................186
Целевая функция обуче ния ..........................................................................................189
Настройка проекта ............................................................................................................191
Загрузка набора данных ....................................................................................................192
Реализация сети CycleGAN с Keras ....................................................................................192
Сеть генератора .............................................................................................................193
Сеть дискриминатора ...................................................................................................195
Обуче ние сети CycleGAN ...................................................................................................197
Загрузка набора данных ...............................................................................................197
Построение и компиляция сетей .................................................................................198
Начало обуче ния ...........................................................................................................201
Сохранение модели .......................................................................................................203
Визуализация генерируемых изображений ................................................................204
Визуализация потерь ....................................................................................................205
Визуализация графов ....................................................................................................206
Практическое применение сетей CycleGAN ....................................................................207
Резюме ................................................................................................................................207
Дальнейшее чтение ...........................................................................................................207

Глава 8. Условная сеть GAN – преобразование изображения  
в изображение  с использованием условных состязательных сетей ....209
Введение в сети pix2pix .....................................................................................................210
Архитектура сети pix2pix ..............................................................................................210
Целевая функция обуче ния ..........................................................................................216
Создание проекта ..............................................................................................................217

Содержание  9

Подготовка данных ............................................................................................................218
Визуализация изображений .........................................................................................220
Реализация сети pix2pix в Keras ........................................................................................222
Сеть генератора .............................................................................................................222
Сеть дискриминатора ...................................................................................................228
Состязательная сеть ......................................................................................................232
Обуче ние сети pix2pix .......................................................................................................234
Сохранение моделей .....................................................................................................238
Визуализация генерированных изображений ............................................................239
Визуализация потерь ....................................................................................................240
Визуализация графов ....................................................................................................241
Практические применения сети pix2pix ..........................................................................241
Резюме ................................................................................................................................242

Глава 9. Прогнозирование будущего сетей GAN ..........................................243
Наш прогноз будущего сетей GAN ...................................................................................244
Совершенствование существующих методов глубокого обуче ния ...........................244
Эволюция коммерческих приложений сетей GAN .....................................................245
Совершенствование процесса обуче ния сетей GAN ...................................................245
Потенциальные будущие применения сетей GAN ..........................................................245
Создание инфографики из текста ................................................................................245
Создание дизайна сайта ...............................................................................................245
Сжатие данных ..............................................................................................................246
Открытие и разработка лекарственных препаратов ..................................................246
Сети GAN для генерации текста ...................................................................................246
Сети GAN для генерации музыки ................................................................................246
Изучение сетей GAN ..........................................................................................................246
Резюме ................................................................................................................................247

Предметный указатель ............................................................................................248

Об авторе

Кайлаш Ахирвар (Kailash Ahirwar) – энтузиаст машинного обуче ния и глубокого обуче ния. Он работал во многих областях искусственного интеллекта 
(ИИ) – от обработки естественного языка и компьютерного зрения до моделирования с использованием GAN. Является соучредителем и техническим 
директором компании Mate Labs. Ахирвар применяет GAN для построения 
различных моделей, таких как превращение рисунков в фотографии и управление глубоким синтезом изображений с помощью текстурных исправлений.
Он очень оптимистичен в отношении AGI и считает, что искусственный интеллект станет рабочей лошадкой эволюции человека.

Эта книга не была бы возможна без помощи моей семьи. Она поддерживала и поощряла меня во время этой работы. Я хотел бы поблагодарить 
Рахула Вишвакарму (Rahul Vishwakarma) и всю команду Mate Labs за их 
поддержку. Кроме того, большое спасибо Руби Мохан (Ruby Mohan), Ниту 
Даниэль (Neethu Daniel), Абхишеку Кумару (Abhishek Kumar), Танаи Агарвалу (Tanay Agarwal), Амаре Ананд Кумар (Amara Anand Kumar) и другим 
за их ценный вклад. 

О рецензенте

Джалай Танаки (Jalaj Thanaki) – известный ученый, имеющая опыт работы 
в сфере информационных технологий, издательской деятельности и финансов. Она является автором книги «Обработка естественного языка и решение 
задач машинного обуче ния на языке программирования Python» (Python Natural Language Processing and Machine Learning Solutions), опубликованной издательством Packt Publishing.
Ее научные интересы лежат в области обработки естественного языка, машинного обуче ния, глубокого изучения и анализа больших данных. Джалай 
также является путешественником и любителем природы.

Предисловие

Порождающие состязательные сети (GAN) являются потенциальной перспективой построения сетевых моделей следующего поколения, поскольку 
обладают возможностью имитировать любые распределения данных. В этой 
быст ро растущей области машинного обучения (Machine Learning, ML) ведутся 
многочисленные исследования. В данной книге приведены сквозные проекты 
построения сетей GAN с обучением без учителя.
Проекты порождающих состязательных сетей в книге начинаются с изложения концепций, инструментов и библиотек, применяющихся для создания 
эффективного проекта. В проектах используются различные наборы данных. 
Уровень сложности операций, необходимых для реализации проекта, с каждой 
главой увеличивается, что способствует лучшему пониманию этих проектов.
Вы познакомитесь с практической реализацией популярных проектов, таких как сети 3D-GAN, DCGAN, StackG иA NCycleGAN, их архитектурой и функционированием моделей.
Изучив проекты этой книги, вы будеты готовы создавать, обучать и оптимизировать в своих проектах сквозные модели сетей GAN.

Для кого эта книга

Если вы – специалист по данным, разработчик ML, специалист по глубокому 
обуче нию или энтузиаст искусственного интеллекта (AI) и ищете руководство 
по проекту, чтобы расширить свои знания и опыт в создании реальных моделей сетей GAN, – эта книга для вас.

СоДержание книги

Глава 1 «Введение в порождающие состязательные сети» начинается с концепции сетей GAN. Читатели узнают, что такое дискриминатор, что такое генератор и что такое теория игр. Следующие несколько тем будут охватывать 
архитектуру генератора, архитектуру дискриминатора, целевые функции для 
генераторов и дискриминаторов, алгоритмы обуче ния сетей GAN, расходимости Кульбака–Лейблера и Дженсена–Шеннона, матрицы оценки для GAN, 
различные проблемы с GAN, проблемы исчезающих и взрывных градиентов, 
равновесие Нэша, пакетную нормализацию и регуляризацию в сетях GAN.
Глава 2 «Сеть 3D-GAN – генерация форм 3D с использованием сетей GAN» 
начинается с краткого введения в 3D-GAN и различных архитектурных деталей. В этой главе мы будем обучать 3D-GAN генерировать реальные 3D-формы. 
Мы создадим код для сбора набора данных 3D Shapenet, его очистки и подготовки к обуче нию. Затем напишем код для 3D-GAN с библиотекой глубокого 
обуче ния Keras.

Содержание книги  13

В главе 3 «Старение лица с использованием условной сети сGAN» читатели знакомятся с условными порождающими состязательными сетями (cGAN) 
и Age-cGAN. Мы изучим различные этапы подготовки данных, такие как загрузка, очистка и форматирование данных. Будем использовать набор данных 
IMDb Wiki Images. Напишем код для сети Age-cGAN с применением инфраструктуры Keras. Далее мы обучим сеть на наборе данных IMDb Wiki Images. 
Наконец, мы будем генерировать изображения, используя нашу обуче нную 
модель и возраст в качестве нашего условного аргумента. Обуче нная модель 
будет генерировать изображения лица человека в разных возрастах.
Глава 4 «Создание анимационных персонажей с использованием сети 
DCGAN » начинается с введения в сеть DCGAN. Мы изучим различные этапы 
подготовки данных, такие как сбор данных аниме-персонажей, очистка набора 
данных и подготовка его к обуче нию. Рассмотрим реализацию Keras для сети 
DCGAN в ноутбуке Jupyter. Далее изучим различные способы обуче ния DCGAN 
и выберем для нее различные гиперпараметры. Наконец, мы будем генерировать аниме-персонажей, используя нашу обуче нную модель. Также обсудим 
практическое применение DCGAN.
Глава 5 «Использование сети SRGAN для создания реалистичных фотоизобра жений» объясняет, как обучить SRGAN для генерации фотореалистичных изображений. Первым шагом в процессе обуче ния является сбор набора 
данных с последующей его очисткой и форматированием для обуче ния. Читатели узнают, где собрать набор данных, как его очистить и как перевести 
в нужный для обучения формат.
Глава 6 «Сеть StackGAN – синтез текста в реалистичные фотоизображения» 
начнется с введения в сеть StackGAN. Сбор данных и подготовка данных являются важными шагами, и мы изучим процесс сбора и подготовки набора 
данных, его очистки и форматирования. Мы напишем код для сети StackGAN 
в Keras внутри ноутбука Jupyter. Далее обучим сеть на наборе данных CUB. Наконец, после того как закончим обуче ние модели, мы сгенерируем фотореалистичные изображения из текстовых описаний. Обсудим различные отраслевые 
приложения StackGAN и способы их использования в производстве.
Глава 7 «Сеть CycleGAN – превращение картин в фотографии» объясняет, как 
обучить CycleGAN превращать картины в фотографии. Мы начнем с введения 
в CycleGAN и рассмотрим их различные приложения. Разберем различные методы сбора данных, очистки данных и формирования данных. Далее напишем 
коды реализации CycleGAN в Keras и получим подробное объяснение кода в ноутбуке Jupyter. Мы будем обучать сеть CycleGAN на подготовленном нами наборе данных и протестируем нашу обуче нную модель, чтобы превратить картины 
в фотографии. Наконец, рассмотрим практическое применение CycleGAN.
Глава 8 «Условная сеть GAN – преобразование изображения в изображение 
с использованием условных состязательных сетей» рассказывает, как подготовить условную сеть GAN для трансляции изображения в изображение. Мы начнем с введения в условные сети GAN и описания различных методов подготовки данных, таких как сбор данных, очистка данных и форматирование данных. 

 Предисловие

Далее напишем код для условной сети GAN в Keras внутри ноутбука Jupyter. Потом узнаем, как обучить условную сеть GAN на подготовленном нами наборе 
данных. Мы будем изучать различные гиперпараметры для обуче ния. Наконец, 
протестируем условную сеть GAN и обсудим различные варианты использования преобразования изображения в изображение в реальных приложениях.
Глава 9 «Прогнозирование будущего сетей GAN» является последней главой. 
Изучив основы сетей GAN и приведенные в книге проекты, в этой главе читатель получит представление о будущем сетей GAN. Здесь мы рассмотрим, как 
в последние 3–4 года внедрение сетей GAN было феноменальным и насколько 
хорошо индустрия приняла его. Я расскажу также о моем личном видении будущего сетей GAN.

Чтобы полуЧить макСимальную отДаЧу от этой книги

Требуется знание глубокого обуче ния, библиотеки Keras и некоторые предварительные знания TensorFlow. Опыт кодирования в Python 3 был бы полезен.

иСпользуемые уСловные обознаЧения

В этой книге используется ряд текстовых обозначений.
Код в тексте: указывает кодовые слова в тексте, имена таблиц базы данных, 
имена папок, имена файлов, расширения файлов, пути, фиктивные URL-адреса, ввод пользователя и маркеры Twitter. Вот пример: «Используйте функцию 
loadmat() из scipy для извлечения вокселей».
Блок кода устанавливается следующим образом:

import scipy.io as io
voxels = io.loadmat ("путь к .mat file") ['пример']

Любой ввод или вывод командной строки записывается так:

pip install -r requirements.txt

Полужирный: обозначает новый термин, важное слово или слова, которые 
вы видите на экране.

 Так будут оформляться предупреждения и важные примечания.

 Так будут оформляться советы или рекомендации.

отзывы и пожелания

Мы всегда рады отзывам наших читателей. Расскажите нам, что вы думаете об 
этой книге – что понравилось или, может быть, не понравилось. Отзывы важны 
для нас, чтобы выпус кать книги, которые будут для вас максимально полезны.
Вы можете написать отзыв на нашем сайте www.dmkpress.com, зайдя на 
страницу книги и оставив комментарий в разделе «Отзывы и рецензии». Так
Нарушение авторских прав  15

же можно послать письмо главному редактору по адресу dmkpress@gmail.com; 
при этом укажите название книги в теме письма. 
Если вы являетесь экспертом в какой-либо области и заинтересованы в написании новой книги, заполните форму на нашем сайте по адресу http://dmkpress.com/authors/publish_book/ или напишите в издательство по адресу dmkpress@gmail.com.

СкаЧивание иСхоДного коДа примеров

Скачать файлы с дополнительной информацией для книг издательства «ДМК 
Пресс» можно на сайте www.dmkpress.com или www.дмк.рф на странице с описанием соответствующей книги. 
Пакет кода для книги также размещен на GitHub на https://github.com/PacktPublishing/Generative-Adversarial-Networks-Projects. 
В случае обновления кода он будет обновлен в существующем репозитории 
GitHub.
У нас есть другие комплекты кода из нашего богатого каталога книг и видео, 
доступных по адресу: http://github.com/PacktPublishing/. Проверьте их!

СпиСок опеЧаток

Хотя мы приняли все возможные меры для того, чтобы обеспечить высокое 
качество наших текстов, ошибки все равно случаются. Если вы найдете ошибку 
в одной из наших книг – возможно, ошибку в основном тексте или программном коде, – мы будем очень благодарны, если вы сообщите нам о ней. Сделав 
это, вы избавите других читателей от недопонимания и поможете нам улучшить последующие издания этой книги. 
Если вы найдете какие-либо ошибки в коде, пожалуйста, сообщите о них 
главному редактору по адресу dmkpress@gmail.com, и мы исправим это в следующих тиражах.

нарушение авторСких прав

Пиратство в интернете по-прежнему остается насущной проблемой. Издательства «ДМК Пресс» и Packt очень серь езно относятся к вопросам защиты авторских прав и лицензирования. Если вы столкнетесь в интернете с незаконной 
публикацией какой-либо из наших книг, пожалуйста, пришлите нам ссылку на 
интернет-ресурс, чтобы мы могли применить санкции.
Ссылку на подозрительные материалы можно прислать по адресу электронной поч ты dmkpress@gmail.com.
Мы высоко ценим любую помощь по защите наших авторов, благодаря которой мы можем предоставлять вам качественные материалы. 

Доступ онлайн
899 ₽
В корзину