[Pytorch系列-71]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix - 使用预训练模型训练pix2pix模型
作者主頁(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
?本文網(wǎng)址:https://blog.csdn.net/HiWangWenBing/article/details/122077757
目錄
第1章 概述
1.1 代碼架構與總體思路
1.2 本章基本思路
1.3 訓練方式
第2章 測試步驟
第1步:下載或克隆pytorch-CycleGAN-and-pix2pix所有代碼
第2步:切換當前目錄
第3步:安裝依賴文件(可視化工具)
第4步:下載pix2pix數(shù)據(jù)集
第5步:下載預訓練模型
第6步:啟動可視化工具visdom
第7步:模型訓練
第8步:效果展示
第1章 概述
1.1 代碼架構與總體思路
[Pytorch系列-63]:生成對抗網(wǎng)絡GAN - 圖像生成開源項目pytorch-CycleGAN-and-pix2pix - 代碼總體架構_文火冰糖(王文兵)的博客-CSDN博客作者主頁(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_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代碼代碼結構3.1 目錄結構3.2 圖片轉換的兩大功能3.3 啟動程序的三種方法..https://blog.csdn.net/HiWangWenBing/article/details/121940011
1.2 本章基本思路
(1)Pycharm進行調試,替代命令行或Jupter
(2)選擇所需要硬盤空間小的數(shù)據(jù)進行測試
(3)熟悉pytorch-CycleGAN-and-pix2pix項目的使用
(4)熟悉pix2pix模型訓練
1.3 訓練方式
- 從頭開始訓練
- 從預預訓練模型開始訓練(官網(wǎng)提供的預訓練模型只包括G網(wǎng)絡,不包括D網(wǎng)絡)
- 從上次訓練結果開始訓練
第2章 測試步驟
第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
備注:
-
可以把代碼下載或拷貝到jupter的工作目錄中,以便后續(xù)可以通過jupter運行代碼。
第2步:切換當前目錄
(1)運行方式
- 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的內容,獲取數(shù)據(jù)集URL, 通過URL手工下載:Index of /pix2pix/datasets
備注:
- 有些數(shù)據(jù)集很多,高達8G, 下載時需留意硬盤空間是否可以承載。
- pix2pix的數(shù)據(jù)集是成對出現(xiàn)的。
- Facades和cityscapes數(shù)據(jù)集最小,方便測試驗證。
(2)數(shù)據(jù)集的存放路徑
- 存放路徑:pytorch-CycleGAN-and-pix2pix\datasets
備注:必須同名,不能改名
?(3)支持的數(shù)據(jù)集
支持的數(shù)據(jù)集:
- cityscapes: 城市輪廓轉換成城市街景實體
- night2day:? 晚上轉換成白天
- edges2handbags:邊沿轉換成手提包
- edges2shoes:邊沿轉換成鞋子
- facades:房屋外觀轉換成房子實體(所需要的內存空間最小)
- maps:地圖輪廓轉換成實體地圖
第5步:下載預訓練模型
(1)下載方式
- Linux命令行方式
- jupter方式
- Windows方式
根據(jù)download_pix2pix_model.sh腳步的內容,獲取鏈接:
http://efrosgans.eecs.berkeley.edu/pix2pix/models-pytorch/
(2)存放路徑
./checkpoints/{xxx}/latest_net_G.pth
xxx為模型名稱。
備注:
- 需要把模型的名稱,改為latest_net_G.pth,并存放在{xxx}目錄中,這與使用預訓練模型進行測試是不一樣的。
- 官方的預訓練模型,只有G網(wǎng)絡的參數(shù),沒有D網(wǎng)絡的參數(shù),因此基本上需要重新訓練。
第6步:啟動可視化工具visdom
(1)啟動visdom server
conda info -e
conda activate?pytorch-gpu-os
python -m visdom.server
(2)啟動visdom Client
http://localhost:8097
第7步:模型訓練
(1)CPU方式(僅用于學習代碼)運行
--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進行訓練。
- -print_freq 1:每迭代多少次,在終端上打印一次提示信息, 默認100.
- -display_freq 1:每迭代多少次,在visdom客戶端可視化一次圖像,默認400
- --update_html_freq 1:每迭代多少次,更新一次html輸出文件,默認1000.
- --save_epoch_freq 5:? ? 每迭代多少次,存儲一次模型參數(shù)
- --save_latest_freq? 100:每迭代多少次,存儲一次模型參數(shù)
- --niter 1:迭代的epoch次數(shù), 默認100
- --niter_decay 1:迭代的epoch次數(shù),對學習率進行一次衰減,默認100,總的epoc=niter +?niter_decay + 1
備注:
- 該項目,采用GPU訓練時,需要>8G的GPU內存,如果GPU條件不滿足,在學習代碼流程時,可以使用CPU進行訓練
- 之所以修改這些默認參數(shù),是因為CPU的訓練太慢,不利于學習的效率。
(2)GPU方式(適用于正式訓練模型)
--dataroot ./datasets/facades --name facades_pix2pix --model pix2pix --direction BtoA
備注:
在GPU的情況下,使用默認的參數(shù)。
(3)重頭訓練與基于先前的訓練結果繼續(xù)訓練
--continue_train :如果設置,則基于先前的訓練結果繼續(xù)訓練,如果不設置,則從頭開始訓練。
第8步:效果展示
(1)控制臺打印顯示
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
- 訓練結果
第9步:輸出文件
(1)圖片文件:
目錄:
- pytorch-CycleGAN-and-pix2pix\checkpoints\facades_pix2pix\web\images
(2)模型文件
目錄:
- pytorch-CycleGAN-and-pix2pix\checkpoints\facades_pix2pix\
內容:
- latest_net_G.pth:最新的G網(wǎng)絡模型文件, 再訓練時,可以 基于此文件進行繼續(xù)訓練
- latest_net_D.pth:最新的D網(wǎng)絡模型文件,再訓練時,可以 基于此文件進行繼續(xù)訓練
- 200_net_G.pth:迭代n次的G網(wǎng)絡模型文件
- 200_net_D.pth:迭代n次的D網(wǎng)絡模型文件
作者主頁(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文網(wǎng)址:https://blog.csdn.net/HiWangWenBing/article/details/122077757
總結
以上是生活随笔為你收集整理的[Pytorch系列-71]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix - 使用预训练模型训练pix2pix模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ddns的搭建(动态域名解析DDNS)
- 下一篇: 地球同步、地球静止、半同步、太阳同步、极