Создание среды NiceGAN — эффективное руководство по обучению модели — [читать в одной статье]

искусственный интеллект
Создание среды NiceGAN — эффективное руководство по обучению модели — [читать в одной статье]

❤️【Введение в проект глубокого обучения】❤️ Первое знакомство с 【Style Transfer】| ?Изучите 【Конфронтационное обучение】, у вас и Хонгяна больше не будет смущения?


❤️ 【Понять】❤️


  • ❤️ Миграция стилей ========》Одевайтесь одним щелчком мыши
  • ? Попробуйте в жизни немного больше ===》Стиль рисования меняется

? Основная информация



? Официальная среда Git опирается на следующее:


официальный сайт github

1


? Окружающая среда Строительство


  • Сервер: Ubuntu1~18.04 Quadro RTX 5000 16G
  • CUDA версии V10.0.130
conda create -n nice python=3.6.9

conda activate nice

pip install torch==1.1.0

pip install torchvision==0.3.0
或者(建议使用 conda 来安装)
conda install pytorch==1.1.0 torchvision==0.3.0 cudatoolkit=10.0 -c pytorch

pip install pillow==5.2.0

pip install opencv-python

pip install scipy
pip install thop

? Структура проекта


 git clone https://github.com/alpc91/NICE-GAN-pytorch.git
 
 cd NICE-GAN-pytorch
 
 cd dataset/

? Добавить набор данных

1-0

? Настройки параметров тренировки

1-1


? тренируйся и тестируй


? Поезд

# 显卡16G不够用,所以设置  --light True 

python main.py --dataset horse2zebra --light True

# 指定多卡训练的方式如下

CUDA_VISIBLE_DEVICES=2,3 python main.py --dataset horse2zebra --light True

# nohup 把训练进程放到后台

nohup python main.py --dataset horse2zebra --light True &

90 минут тренировки 5000 эпох, эффект тренировки следующий

1-2

? Тест

python main.py --dataset horse2zebra --phase test  --light True

Результат тестового запуска выглядит следующим образом

python main.py --dataset horse2zebra --phase test  --light True

# 测试运行输出如下
 
number of epochs must be larger than or equal to one

##### Information #####
# light :  True
# dataset :  horse2zebra
# batch_size :  1
# iteration per epoch :  300000
# the size of image :  256
# the size of image channel :  3
# base channel number per layer :  64

##### Generator #####
# residual blocks :  6

##### Discriminator #####
# discriminator layers :  7

##### Weight #####
# adv_weight :  1
# cycle_weight :  10
# recon_weight :  10
-----------------------------------------------
[INFO] Register count_linear() for <class 'torch.nn.modules.linear.Linear'>.
[INFO] Register count_convNd() for <class 'torch.nn.modules.conv.Conv2d'>.
[INFO] Register count_relu() for <class 'torch.nn.modules.activation.LeakyReLU'>.
[Network disA] Total number of parameters:  93.749M
[Network disA] Total number of FLOPs:  12.013G
-----------------------------------------------
[INFO] Register zero_ops() for <class 'torch.nn.modules.activation.ReLU'>.
[INFO] Register count_linear() for <class 'torch.nn.modules.linear.Linear'>.

[Network gen2B] Total number of parameters:  16.192M
[Network gen2B] Total number of FLOPs:  67.552G
-----------------------------------------------
5000 [测试使用模型的迭代次数]

dataset/horse2zebra/testA/n02381460_1000.jpg
dataset/horse2zebra/testA/n02381460_1010.jpg
...

1-3


? Заметки


  • Модель сохраняется один раз во время обучения размером 1,2 Гб.
  • Когда --batch_size == 1, GPU потребляет 7679 МБ.
  • Когда --batch_size == 2, GPU потребляет 12473 МБ.
  • --batch_size == 4, 16G GPU недостаточно

? Возможные ошибки


Обучение с одной картой, обучение полной версии NICE-GAN, [16G] GPU недостаточно

  • CUDA_VISIBLE_DEVICES=3 python main.py --dataset horse2zebra
RuntimeError: CUDA out of memory. Tried to allocate 1024.00 MiB (GPU 0; 15.75 GiB total capacity; 13.78 GiB already allocated; 782.44 MiB free; 499.74 MiB cached)

Решение выглядит следующим образом

  • Было проверено, что если вы переключитесь на GPU с большей памятью 24 G или более для обучения, вы не столкнетесь с этой ошибкой, то есть выполните обучение [NICE-GAN full version].
  • Во время обучения добавьте параметр --light True для обучения [облегченная версия NICE-GAN]

? Измени стиль школьницы ?


Здесь мы используем набор данных, состоящий из [картин Ван Гога маслом и изображений реальных пейзажей] для обучения 500 000 итераций.

nohup python main.py --dataset vangogh2photo --light True &

# 训练时长,最终定格在 5天

Результат после тренировки следующий

[499995/500000] time: 431994.8614 d_loss: 2.32049370, g_loss: 3.90420341
[499996/500000] time: 431995.4892 d_loss: 2.04860115, g_loss: 3.71788430
[499997/500000] time: 431996.1223 d_loss: 2.22972393, g_loss: 4.25117588
[499998/500000] time: 431996.7609 d_loss: 2.36788273, g_loss: 5.42507362
[499999/500000] time: 431997.3897 d_loss: 2.53704023, g_loss: 4.05708218
[500000/500000] time: 431998.0172 d_loss: 2.21194649, g_loss: 4.53932619
current D_learning rate:-1.7075100951256253e-16
current G_learning rate:-1.7075100951256253e-16
 [*] Training finished!

? Анализ тренировок

Видно, что по умолчанию модель сохраняется каждые 10 Вт итерации, а при обучении 50 Вт модель сохраняется только 5 раз. Эти 5 сохраненных моделей были протестированы и обнаружили, что эффект не захватывающий.


Случайно перевернулся, причины следующие

  • Обучение модели самой сети Гана имеет много нестабильности и неопределенности.
  • Улучшите стратегию, стили наборов данных trainA и trainB максимально согласованы
  • При обучении рекомендуется сохранять модель каждые 1w или 5k итераций.
  • Таким образом, вы можете получить несколько генеративных моделей, а затем протестировать их одну за другой, возможны сюрпризы.
  • Для NiceGAN фактическое приложение измерения и обучение модели в основном представляют собой одну и ту же идею.
  • Можно только сказать, что чем больше итераций, тем лучше эффект обучения в теории, но в практических приложениях модель с хорошим эффектом может не быть моделью, полученной с наибольшим количеством тренировок.

2-1

?Есть еще школьницы

О важности единообразия стилей наборов данных


【❤️В следующий раз обязательно сделаю вас красивее❤️】

2-3


? Тренировочный код + обмен данными


?【Поделитесь тренировочными данными + кодом со всеми】?

链接:https://pan.baidu.com/s/1zNR8TcXmQU7_nCB20Rqzmw 
提取码:2021

?? Молеологический ИИ


  • ?Как один из блоггеров с самым большим количеством галантереи в области ИИ во всей сети, ❤️ не отказываюсь от своего времени ❤️
  • ❤️ Если статья была вам полезна,Ставьте лайки и комментируйте, чтобы поощрять каждое серьезное творение блоггера.
  • 9-8