訂閱
糾錯(cuò)
加入自媒體

如何使用預(yù)訓(xùn)練的權(quán)重從自定義數(shù)據(jù)集中生成圖像?

概要

分享我的知識(shí),使用帶有示例代碼片段的遷移學(xué)習(xí)逐步在Google colab中的自定義數(shù)據(jù)集上訓(xùn)練StyleGAN

如何使用預(yù)訓(xùn)練的權(quán)重從自定義數(shù)據(jù)集中生成圖像

使用不同的種子值生成新圖像

介紹

生成對(duì)抗網(wǎng)絡(luò)(GAN) 是機(jī)器學(xué)習(xí)中的一項(xiàng)最新創(chuàng)新,由 Ian J. Goodfellow 及其同事于2014年首次提出。

它是一組神經(jīng)網(wǎng)絡(luò),以兩人零和博弈的形式相互對(duì)抗。博弈論(一個(gè)人的勝利就是另一個(gè)人的損失)。它是用于無(wú)監(jiān)督學(xué)習(xí)的生成模型的一種形式。這里有一個(gè)生成器(用于從潛在空間中的某個(gè)點(diǎn)在數(shù)據(jù)上生成新實(shí)例)和鑒別器(用于將生成器生成的數(shù)據(jù)與實(shí)際或真實(shí)數(shù)據(jù)值區(qū)分開(kāi))。

最初,生成器生成虛假或偽造的數(shù)據(jù),鑒別器可以將其分類為偽造,但是隨著訓(xùn)練的繼續(xù),生成器開(kāi)始學(xué)習(xí)真實(shí)數(shù)據(jù)的分布并開(kāi)始生成真實(shí)的數(shù)據(jù)。這種情況一直持續(xù)到鑒別器無(wú)法將其分類為不真實(shí)的并且生成器輸出的所有數(shù)據(jù)看起來(lái)都像真實(shí)數(shù)據(jù)。因此,此處生成器的輸出連接到鑒別器的輸入,并根據(jù)鑒別器的輸出(是實(shí)數(shù)還是非實(shí)數(shù))計(jì)算損失,并通過(guò)反向傳播,為后續(xù)訓(xùn)練(epoch)更新生成器的權(quán)重。

StyleGAN目前在市場(chǎng)上有多種GAN變體,但在本文中,我將重點(diǎn)介紹Nvidia在2018年12月推出的StyleGAN。StyleGAN的體系結(jié)構(gòu)使用基線漸進(jìn)式GAN。即,生成圖像的大小從非常低的角度逐漸增加分辨率(4×4)到非常高的分辨率(1024×1024),并使用雙線性采樣代替基線漸進(jìn)式GAN中使用的最近鄰居上/下采樣。

遷移學(xué)習(xí)在另一個(gè)相似的數(shù)據(jù)集上使用已訓(xùn)練的模型權(quán)重并訓(xùn)練自定義數(shù)據(jù)集。

自定義數(shù)據(jù)集包含2500個(gè)來(lái)自時(shí)尚的紋理圖像。下面幾張示例紋理圖像可供參考。此處你可以替換成自己的自定義數(shù)據(jù)集。

重點(diǎn)和前提條件:必須使用GPU,StyleGAN無(wú)法在CPU環(huán)境中進(jìn)行訓(xùn)練。為了演示,我已經(jīng)使用google colab環(huán)境進(jìn)行實(shí)驗(yàn)和學(xué)習(xí)。

確保選擇Tensorflow版本1.15.2。StyleGAN僅適用于tf 1.x

StyleGAN訓(xùn)練將花費(fèi)大量時(shí)間(幾天之內(nèi)取決于服務(wù)器容量,例如1個(gè)GPU,2個(gè)GPU等)

如果你正在從事與GAN相關(guān)的任何實(shí)時(shí)項(xiàng)目,那么由于colab中的使用限制和超時(shí),你可能想在 tesla P-80或 P-100專用服務(wù)器上訓(xùn)練GAN 。

如果你有g(shù)oogle-pro(不是強(qiáng)制性的),則可以節(jié)省多達(dá)40-50%的本文訓(xùn)練時(shí)間 ,我對(duì)GAN進(jìn)行了3500次迭代訓(xùn)練,因?yàn)橛?xùn)練整個(gè)GAN需要很長(zhǎng)時(shí)間(要獲取高分辨率圖像),則需要至少運(yùn)行25000次迭代(推薦)。另外,我的圖像分辨率是64×64,但是styleGAN是在1024×1024分辨率圖像上訓(xùn)練的。

我已使用以下預(yù)先訓(xùn)練的權(quán)重來(lái)訓(xùn)練我的自定義數(shù)據(jù)集(有關(guān)更多詳細(xì)信息,請(qǐng)參見(jiàn)Tensorflow Github官方鏈接)

https://drive.google.com/uc?id=1MEGjdvVpUsu1jB4zrXZN7Y4kBBOzizDQ使用遷移學(xué)習(xí)在Google Colab中的自定義數(shù)據(jù)集上訓(xùn)練style GAN打開(kāi)colab并打開(kāi)一個(gè)新的botebook。確保在Runtime->Change Runtime type->Hardware accelerator下設(shè)置為GPU驗(yàn)證你的帳戶并裝載G驅(qū)動(dòng)器from google.colab import drive
drive.mount('/content/drive', force_remount=True)
確保選擇了Tensorflow版本1.15.2。StyleGAN僅適用于tf1.x。%tensorflow_version 1.x
import tensorflow
print(tensorflow.__version__)
從 https://github.com/NVlabs/stylegan 克隆stylegan.git!git clone https://github.com/NVlabs/stylegan.git
!ls /content/stylegan/
You should see something like this
config.py              LICENSE.txt             run_metrics.py
dataset_tool.py        metrics                 stylegan-teaser.png
dnnlib                 pretrained_example.py   training
generate_figures.py    README.md               train.py
5.  將 stylegan文件夾添加到python,以導(dǎo)入dnnlib模塊import sys
sys.path.insert(0, "/content/stylegan")
import dnnlib
6. 將自定義數(shù)據(jù)集從G驅(qū)動(dòng)器提取到你選擇的colab服務(wù)器文件夾中!unrar x "/content/drive/My Drive/CustomDataset.rar" "/content/CData/"
7. Stylegan要求圖像必須是正方形,并且為獲得很好的分辨率,圖像必須為1024×1024。但是在本演示中,我將使用64×64的分辨率,下一步是將所有圖像調(diào)整為該分辨率。# resize all the images to same size
import os
from tqdm import tqdm
import cv2
from PIL import Image
from resizeimage import resizeimage
path = '/content/CData/'
for filename in tqdm(os.listdir(path),desc ='reading images ...'):
image = Image.open(path+filename)
image = image.resize((64,64))
image.save(path+filename, image.format)
8.將自定義數(shù)據(jù)集復(fù)制到colab并調(diào)整大小后,使用以下命令將自定義圖像轉(zhuǎn)換為tfrecords。這是StyleGAN的要求,因此此步驟對(duì)于訓(xùn)練StyleGAN是必不可少的。! python /content/stylegan/dataset_tool.py create_from_images /content/stylegan/datasets/custom-dataset /content/texture
replace your custom dataset path (instead of /content/texture)
9.一旦成功創(chuàng)建了tfrecords,你應(yīng)該查看它們/content/stylegan/datasets/custom-dataset/custom-dataset-r02.tfrecords - 22
/content/stylegan/datasets/custom-dataset/custom-dataset-r03.tfrecords - 23
/content/stylegan/datasets/custom-dataset/custom-dataset-r04.tfrecords -24
/content/stylegan/datasets/custom-dataset/custom-dataset-r05.tfrecords -25
/content/stylegan/datasets/custom-dataset/custom-dataset-r06.tfrecords -26
These tfrecords correspond to 4x4 , 8x8 ,16x16, 32x32 and 64x64 resolution images (baseline progressive) respectiviely

1  2  下一頁(yè)>  
聲明: 本文由入駐維科號(hào)的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

    掃碼關(guān)注公眾號(hào)
    OFweek人工智能網(wǎng)
    獲取更多精彩內(nèi)容
    文章糾錯(cuò)
    x
    *文字標(biāo)題:
    *糾錯(cuò)內(nèi)容:
    聯(lián)系郵箱:
    *驗(yàn) 證 碼:

    粵公網(wǎng)安備 44030502002758號(hào)