以AutoDL為例
? ? ? ? 以下代碼源自:賽博華佗——秋葉:
? ? ? ??Akegarasu
環(huán)境選擇
-
Miniconda: Miniconda是一個輕量級的Conda環(huán)境管理系統(tǒng)。它包含了conda、Python和一些常用的包,以及能夠管理安裝其他包的能力。Miniconda是Anaconda的一個簡化版,Anaconda是一個流行的Python科學(xué)計(jì)算發(fā)行版。
-
conda3: 這指的是使用Conda環(huán)境管理系統(tǒng),并且特指Python 3的版本。Conda是一個開源的包管理和環(huán)境管理系統(tǒng),常用于科學(xué)計(jì)算領(lǐng)域,可以用來安裝、運(yùn)行和升級復(fù)雜的科學(xué)計(jì)算環(huán)境。
-
3.8(ubuntu20.04): 這里指的是使用Python 3.8版本,在Ubuntu 20.04操作系統(tǒng)上。Ubuntu 20.04是一個流行的Linux發(fā)行版,Python 3.8是這個版本的Python的一個較新的穩(wěn)定版本。
-
11.3: 這個數(shù)字指的是NVIDIA CUDA的版本號,CUDA是NVIDIA開發(fā)的用于通用并行計(jì)算的編程架構(gòu),廣泛用于深度學(xué)習(xí)和高性能計(jì)算任務(wù)。11.3是CUDA的一個具體版本號。
初始化腳本環(huán)境
? ? ? ? clone其項(xiàng)目后,首先利用 conda 創(chuàng)建 python 運(yùn)行環(huán)境后再運(yùn)行?install.sh
git clone https://github.com/Akegarasu/dreambooth-autodl.git
cd dreambooth-audodl
conda create -n diffusers python=3.10
conda init bash && source /root/.bashrc
conda activate diffusers
conda install ipykernel
ipython kernel install --user --name=diffusers
bash install.sh
? ? ? ? 將項(xiàng)目文件夾移動到?/autodl-tmp
?后打開?dreambooth-aki.ipynb
?運(yùn)行訓(xùn)練
import sys
import os
# 本鏡像專屬
os.environ["PATH"] = f'/root/miniconda3/envs/diffusers/bin:{os.environ["PATH"]}'
os.environ["HF_HOME"] = ".cache"
DB_SCRIPT_WORK_PATH = os.getcwd() # "/root/autodl-tmp/dreambooth-aki"
!python --version
%cd $DB_SCRIPT_WORK_PATH
TRAINER = "train_dreambooth.py"
CONVERTER = "convert_v3.py"
BACK_CONVERTER = "back_convert.py"
SRC_PATH = "./model-sd"
MODEL_NAME = "./model-hf"
# 模型保存路徑
OUTPUT_DIR = "./output"
!mkdir -p $OUTPUT_DIR
? ? ? ? 這段代碼是設(shè)置一個Jupyter筆記本的全局變量,主要用于準(zhǔn)備環(huán)境以便于訓(xùn)練Stable Diffusion模型。代碼執(zhí)行的主要功能如下:
-
導(dǎo)入所需的Python庫(
sys
和os
)。 -
設(shè)置環(huán)境變量:
-
"PATH"
:添加一個特定的路徑到系統(tǒng)的PATH
環(huán)境變量中,這個路徑是針對一個特定的Python環(huán)境設(shè)置的,以確??梢栽L問所需的執(zhí)行文件。 -
"HF_HOME"
:設(shè)置Hugging Face庫的緩存目錄。
-
-
獲取當(dāng)前工作目錄的路徑,并將其存儲在變量
DB_SCRIPT_WORK_PATH
中。 -
執(zhí)行系統(tǒng)命令來獲取Python的版本信息,并切換到工作目錄。
-
定義一些腳本和模型相關(guān)的變量:
-
TRAINER
:用于訓(xùn)練模型的Python腳本文件名。 -
CONVERTER
:用于轉(zhuǎn)換模型格式的Python腳本文件名。 -
BACK_CONVERTER
:用于將訓(xùn)練好的模型轉(zhuǎn)換回原始格式的Python腳本文件名。 -
SRC_PATH
:原始模型文件的路徑。 -
MODEL_NAME
:轉(zhuǎn)換后的模型文件的保存路徑。
-
-
定義模型輸出目錄
OUTPUT_DIR
,并創(chuàng)建該目錄(如果它不存在的話)。
? ? ? ? 這些步驟為接下來的模型訓(xùn)練和轉(zhuǎn)換工作提供了必要的準(zhǔn)備。它設(shè)置了環(huán)境變量、定義了關(guān)鍵文件路徑和腳本名稱,并確保了輸出目錄的存在。
? ? 環(huán)境變量PATH
? ? ? ? 環(huán)境變量PATH
是操作系統(tǒng)用來查找可執(zhí)行文件的目錄列表。當(dāng)你運(yùn)行一個命令時,系統(tǒng)會在PATH
中列出的目錄里搜索該命令對應(yīng)的可執(zhí)行文件。
f'/root/miniconda3/envs/diffusers/bin:{os.environ["PATH"]}'
? ? ? ? 這其中的冒號,其實(shí)是一個分隔符。。。。。。
? ? ? ? 在PATH
環(huán)境變量中,路徑是按照從左到右的順序進(jìn)行搜索的。因此,冒號前面的路徑(也就是在變量值的最開始的路徑)會被優(yōu)先搜索。如果在這些路徑中找不到所需的可執(zhí)行文件,系統(tǒng)會繼續(xù)在冒號后面列出的路徑中搜索,直到找到所需的可執(zhí)行文件或者搜索完所有列出的路徑。
? ? ? ? 在這個特定的例子中,/root/miniconda3/envs/diffusers/bin
被添加到了PATH
的最前面,所以系統(tǒng)會首先在這個目錄中尋找可執(zhí)行文件。這種方法常用于確保使用特定環(huán)境或版本的程序,特別是在有多個版本的程序安裝在系統(tǒng)上時。
os.environ["HF_HOME"] = ".cache"
-
os.environ
:這是Python中的一個字典,它包含了當(dāng)前shell環(huán)境的所有環(huán)境變量。通過修改這個字典,可以改變環(huán)境變量的值。 -
"HF_HOME"
:這是環(huán)境變量的名稱。HF_HOME
是由Hugging Face庫使用的特定環(huán)境變量,通常用于指定Hugging Face相關(guān)文件(如模型緩存、配置文件等)的存儲位置。 -
"= .cache"
:這將HF_HOME
的值設(shè)置為.cache
。這個值是一個相對路徑,表示當(dāng)前目錄下的名為.cache
的文件夾。
? ? ? ? 將HF_HOME
設(shè)置為.cache
的效果是:當(dāng)使用Hugging Face庫(例如,加載模型、下載數(shù)據(jù)集等)時,它會將所有緩存的數(shù)據(jù)(如下載的預(yù)訓(xùn)練模型)保存到當(dāng)前工作目錄下的.cache
文件夾中。這對于管理模型緩存非常有用,特別是在想要控制緩存位置或在多個項(xiàng)目之間共享緩存時。通過這種方式,你可以避免在系統(tǒng)的默認(rèn)位置(通常是用戶的主目錄)中堆積過多的緩存文件。
!python --version
? ? ? ?這行代碼在Jupyter筆記本中執(zhí)行一個shell命令,用于檢查當(dāng)前環(huán)境中Python的版本。--version
參數(shù)讓Python打印出其版本信息。
DB_SCRIPT_WORK_PATH = os.getcwd()
# "/root/autodl-tmp/dreambooth-aki"
%cd $DB_SCRIPT_WORK_PATH
? ?%cd
是Jupyter筆記本的魔術(shù)命令,用于改變當(dāng)前工作目錄。文章來源:http://www.zghlxwxcb.cn/news/detail-799769.html
OUTPUT_DIR = "./output"
!mkdir -p $OUTPUT_DIR
- 在Jupyter筆記本中執(zhí)行一個shell命令,用于創(chuàng)建目錄。
-
mkdir
是一個常用的Unix/Linux命令,用于創(chuàng)建新的目錄。 -
-p
參數(shù)告訴mkdir
命令,如果目錄不存在,則創(chuàng)建它;如果目錄已經(jīng)存在,不要報(bào)錯(不要叫喚)。此外,-p
參數(shù)還允許創(chuàng)建必要的父目錄。
DreamBooth詳解
DreamBooth | AiDraw文章來源地址http://www.zghlxwxcb.cn/news/detail-799769.html
到了這里,關(guān)于Dreambooth Stable Diffusion始化訓(xùn)練環(huán)境(AutoDL)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!