首先是傳入數據,這里我們不做贅述。
對于數據格式的裁剪,可以通過以下代碼進行:
from glob import glob
from PIL import Image
import os
from tqdm import tqdm
from tqdm.std import trangeimg_path = glob(r"C:\Users\Administrator\Desktop\Resize\*.png")
path_save = r'C:\Users\Administrator\Desktop\ReSize512'
a = range(0, len(img_path))
i = 0
for file in tqdm(img_path):name = os.path.join(path_save, "%d.jpeg" % a[i])im = Image.open(file).convert("RGB")im=im.resize((512, 512)) # 踩坑一:記得返回!print(im.format, im.size, im.mode)im.save(name, 'jpeg')i += 1
這些代碼主要是通過glob
模塊抓取文件,然后通過PIL
讀取文件并轉化成RGB格式,然后再resize后保存。
將數據打包成壓縮包,進入服務器終端。
oss cp oss://stylegan3-main.zip ./hy-tmp/
oss cp oss://ReSize512.zip ./hy-tmp/
解包文件
unzip -q stylegan3-main.zip
unzip -q ReSize512.zip -d DataSets/
進入到項目文件,可以輸入
conda env create -f environment.yml
安裝依賴環境,但是服務器已經配置好了部分環境,也可自己選擇配置:
pip install pillow==8.3.1
pip install click==8.0
pip install scipy==1.7.1
pip install requests==2.26.0
pip install tqdm==4.62.2
pip install ninja==1.10.2
pip install matplotlib==3.4.2
pip install imageio==2.9.0
pip install imgui==1.3.0
pip install glfw==2.2.0
pip install pyopengl==3.1.5
pip install imageio-ffmpeg==0.4.3
pip install pyspng
此時處理我們的訓練數據:
python dataset_tool.py --source=../ReSize512 --dest=../ReSize_Input.zip
刪除文件夾
rm -rf 00000/
python train.py --outdir=~/training-runs --cfg=stylegan3-r --data=~/datasets/metfacesu-1024x1024.zip \--gpus=8 --batch=32 --gamma=6.6 --mirror=1 --kimg=5000 --snap=5 \--resume=https://api.ngc.nvidia.com/v2/models/nvidia/research/stylegan3/versions/1/files/stylegan3-r-ffhqu-1024x1024.pkl
注意這里的參數,stylegan3-r
R表示平移旋轉等變性,t表示平移等變性,resume表示上次使用的網絡,snap表示每隔多少批次進行輸出,kimg表示訓練批次,gamma表示R1正則參數,越大模型約有創意,記得把matrix設置為None
python train.py --outdir=../training-runs --cfg=stylegan3-t --data=../DataSets/ReSize_Input.zip --gpus=2 --batch=16 --gamma=10 --mirror=1 --kimg=25000 --snap=10 --matrics=None
進入訓練后,在training-runs
里可以得到訓練過程信息:
上面是生成的Fake影像,下面是網絡權重,這跟我們的snap
參數有關
這個文件放到tensorboard里打開即可查看訓練狀態。
tensorboard --logdir path --port 8848
在Roboflow網址上進行數據標注
完成數據增廣工作