[Pytorch系列-71]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix - 使用预训练模型训练pix2pix模型
作者主頁(yè)(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
?本文網(wǎng)址:https://blog.csdn.net/HiWangWenBing/article/details/122077757
目錄
第1章 概述
1.1 代碼架構(gòu)與總體思路
1.2 本章基本思路
1.3 訓(xùn)練方式
第2章 測(cè)試步驟
第1步:下載或克隆pytorch-CycleGAN-and-pix2pix所有代碼
第2步:切換當(dāng)前目錄
第3步:安裝依賴文件(可視化工具)
第4步:下載pix2pix數(shù)據(jù)集
第5步:下載預(yù)訓(xùn)練模型
第6步:啟動(dòng)可視化工具visdom
第7步:模型訓(xùn)練
第8步:效果展示
第1章 概述
1.1 代碼架構(gòu)與總體思路
[Pytorch系列-63]:生成對(duì)抗網(wǎng)絡(luò)GAN - 圖像生成開源項(xiàng)目pytorch-CycleGAN-and-pix2pix - 代碼總體架構(gòu)_文火冰糖(王文兵)的博客-CSDN博客作者主頁(yè)(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客本文網(wǎng)址:目錄第1章 理論概述1.1普通GAN, pix2pix, CycleGAN和pix2pixHD的演變過程第2章 CycleGAN-and-pix2pix代碼下載2.1 github代碼鏈接2.2 github使用說明2.3 代碼下載第3章CycleGAN-and-pix2pix代碼代碼結(jié)構(gòu)3.1 目錄結(jié)構(gòu)3.2 圖片轉(zhuǎn)換的兩大功能3.3 啟動(dòng)程序的三種方法..https://blog.csdn.net/HiWangWenBing/article/details/121940011
1.2 本章基本思路
(1)Pycharm進(jìn)行調(diào)試,替代命令行或Jupter
(2)選擇所需要硬盤空間小的數(shù)據(jù)進(jìn)行測(cè)試
(3)熟悉pytorch-CycleGAN-and-pix2pix項(xiàng)目的使用
(4)熟悉pix2pix模型訓(xùn)練
1.3 訓(xùn)練方式
- 從頭開始訓(xùn)練
- 從預(yù)預(yù)訓(xùn)練模型開始訓(xùn)練(官網(wǎng)提供的預(yù)訓(xùn)練模型只包括G網(wǎng)絡(luò),不包括D網(wǎng)絡(luò))
- 從上次訓(xùn)練結(jié)果開始訓(xùn)練
第2章 測(cè)試步驟
第1步:下載或克隆pytorch-CycleGAN-and-pix2pix所有代碼
如果已經(jīng)完成,可以跳過此步驟。
(1)Linux 命令行方式:!git clone https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix
(2)Windows瀏覽器下載:https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix
備注:
-
可以把代碼下載或拷貝到j(luò)upter的工作目錄中,以便后續(xù)可以通過jupter運(yùn)行代碼。
第2步:切換當(dāng)前目錄
(1)運(yùn)行方式
- Windows 命令行方式:cd xxx
- jupter方式:
- Pycharm: 把工程文件copy到Pycharm工作目錄中即可
第3步:安裝依賴文件(可視化工具)
如果已經(jīng)完成,可以跳過此步驟。
- Windows 命令行方式
pip install -r requirements.txt
- Jupter方式
torch>=0.4.1
torchvision>=0.2.1
dominate>=2.3.1
visdom>=0.1.8.3
第4步:下載pix2pix數(shù)據(jù)集
(1)下載方式
- Linux 命令行方式
bash ./datasets/download_pix2pix_dataset.sh facades
- Jupter方式
- Windows瀏覽器方式
根據(jù)./datasets/download_pix2pix_dataset.sh的內(nèi)容,獲取數(shù)據(jù)集URL, 通過URL手工下載:Index of /pix2pix/datasets
備注:
- 有些數(shù)據(jù)集很多,高達(dá)8G, 下載時(shí)需留意硬盤空間是否可以承載。
- pix2pix的數(shù)據(jù)集是成對(duì)出現(xiàn)的。
- Facades和cityscapes數(shù)據(jù)集最小,方便測(cè)試驗(yàn)證。
(2)數(shù)據(jù)集的存放路徑
- 存放路徑:pytorch-CycleGAN-and-pix2pix\datasets
備注:必須同名,不能改名
?(3)支持的數(shù)據(jù)集
支持的數(shù)據(jù)集:
- cityscapes: 城市輪廓轉(zhuǎn)換成城市街景實(shí)體
- night2day:? 晚上轉(zhuǎn)換成白天
- edges2handbags:邊沿轉(zhuǎn)換成手提包
- edges2shoes:邊沿轉(zhuǎn)換成鞋子
- facades:房屋外觀轉(zhuǎn)換成房子實(shí)體(所需要的內(nèi)存空間最小)
- maps:地圖輪廓轉(zhuǎn)換成實(shí)體地圖
第5步:下載預(yù)訓(xùn)練模型
(1)下載方式
- Linux命令行方式
- jupter方式
- Windows方式
根據(jù)download_pix2pix_model.sh腳步的內(nèi)容,獲取鏈接:
http://efrosgans.eecs.berkeley.edu/pix2pix/models-pytorch/
(2)存放路徑
./checkpoints/{xxx}/latest_net_G.pth
xxx為模型名稱。
備注:
- 需要把模型的名稱,改為latest_net_G.pth,并存放在{xxx}目錄中,這與使用預(yù)訓(xùn)練模型進(jìn)行測(cè)試是不一樣的。
- 官方的預(yù)訓(xùn)練模型,只有G網(wǎng)絡(luò)的參數(shù),沒有D網(wǎng)絡(luò)的參數(shù),因此基本上需要重新訓(xùn)練。
第6步:啟動(dòng)可視化工具visdom
(1)啟動(dòng)visdom server
conda info -e
conda activate?pytorch-gpu-os
python -m visdom.server
(2)啟動(dòng)visdom Client
http://localhost:8097
第7步:模型訓(xùn)練
(1)CPU方式(僅用于學(xué)習(xí)代碼)運(yùn)行
--dataroot ./datasets/facades --name facades_pix2pix --model pix2pix --direction BtoA
--gpu_ids -1 --niter_decay 1 --niter 1
--display_freq 1 --update_html_freq 1 --print_freq 1?--save_epoch_freq 5?--save_latest_freq? 100
- --gpu_ids -1:表示使用CPU進(jìn)行訓(xùn)練。
- -print_freq 1:每迭代多少次,在終端上打印一次提示信息, 默認(rèn)100.
- -display_freq 1:每迭代多少次,在visdom客戶端可視化一次圖像,默認(rèn)400
- --update_html_freq 1:每迭代多少次,更新一次html輸出文件,默認(rèn)1000.
- --save_epoch_freq 5:? ? 每迭代多少次,存儲(chǔ)一次模型參數(shù)
- --save_latest_freq? 100:每迭代多少次,存儲(chǔ)一次模型參數(shù)
- --niter 1:迭代的epoch次數(shù), 默認(rèn)100
- --niter_decay 1:迭代的epoch次數(shù),對(duì)學(xué)習(xí)率進(jìn)行一次衰減,默認(rèn)100,總的epoc=niter +?niter_decay + 1
備注:
- 該項(xiàng)目,采用GPU訓(xùn)練時(shí),需要>8G的GPU內(nèi)存,如果GPU條件不滿足,在學(xué)習(xí)代碼流程時(shí),可以使用CPU進(jìn)行訓(xùn)練
- 之所以修改這些默認(rèn)參數(shù),是因?yàn)镃PU的訓(xùn)練太慢,不利于學(xué)習(xí)的效率。
(2)GPU方式(適用于正式訓(xùn)練模型)
--dataroot ./datasets/facades --name facades_pix2pix --model pix2pix --direction BtoA
備注:
在GPU的情況下,使用默認(rèn)的參數(shù)。
(3)重頭訓(xùn)練與基于先前的訓(xùn)練結(jié)果繼續(xù)訓(xùn)練
--continue_train :如果設(shè)置,則基于先前的訓(xùn)練結(jié)果繼續(xù)訓(xùn)練,如果不設(shè)置,則從頭開始訓(xùn)練。
第8步:效果展示
(1)控制臺(tái)打印顯示
dataset [AlignedDataset] was created
The number of training images = 400
initialize network with normal
initialize network with normal
model [Pix2PixModel] was created
---------- Networks initialized -------------
[Network G] Total number of parameters : 54.414 M
[Network D] Total number of parameters : 2.769 M
-----------------------------------------------
(epoch: 1, iters: 1, time: 0.861, data: 8.576) G_GAN: 1.932 G_L1: 35.501 D_real: 0.595 D_fake: 1.196?
(epoch: 1, iters: 2, time: 0.861, data: 0.001) G_GAN: 1.457 G_L1: 52.500 D_real: 1.197 D_fake: 1.248?
(epoch: 1, iters: 3, time: 0.791, data: 0.000) G_GAN: 0.957 G_L1: 39.967 D_real: 1.115 D_fake: 1.119?
............................
(epoch: 2, iters: 400, time: 0.973, data: 0.000) G_GAN: 1.775 G_L1: 39.182 D_real: 0.137 D_fake: 0.277?
End of epoch 2 / 2 ?? ? Time Taken: 408 sec
learning rate = 0.0000000
Process finished with exit code 0
(2)visdom圖形化顯示
- loss
- 訓(xùn)練結(jié)果
第9步:輸出文件
(1)圖片文件:
目錄:
- pytorch-CycleGAN-and-pix2pix\checkpoints\facades_pix2pix\web\images
(2)模型文件
目錄:
- pytorch-CycleGAN-and-pix2pix\checkpoints\facades_pix2pix\
內(nèi)容:
- latest_net_G.pth:最新的G網(wǎng)絡(luò)模型文件, 再訓(xùn)練時(shí),可以 基于此文件進(jìn)行繼續(xù)訓(xùn)練
- latest_net_D.pth:最新的D網(wǎng)絡(luò)模型文件,再訓(xùn)練時(shí),可以 基于此文件進(jìn)行繼續(xù)訓(xùn)練
- 200_net_G.pth:迭代n次的G網(wǎng)絡(luò)模型文件
- 200_net_D.pth:迭代n次的D網(wǎng)絡(luò)模型文件
作者主頁(yè)(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文網(wǎng)址:https://blog.csdn.net/HiWangWenBing/article/details/122077757
總結(jié)
以上是生活随笔為你收集整理的[Pytorch系列-71]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix - 使用预训练模型训练pix2pix模型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ddns的搭建(动态域名解析DDNS)
- 下一篇: 地球同步、地球静止、半同步、太阳同步、极