Buckets:

download
raw
10.4 kB
import"../chunks/DsnmJJEf.js";import{i as Z,h as N,C as X,H as e,a as t,E as C,s as R}from"../chunks/CFM6C53a.js";import{p as Y,o as I,s as a,f as G,a as f,b as V,c as T,n as v}from"../chunks/CNc7KuUZ.js";const E='{"title":"Unconditional 이미지 생성","local":"unconditional-이미지-생성","sections":[{"title":"모델을 허브에 업로드하기","local":"모델을-허브에-업로드하기","sections":[],"depth":2},{"title":"체크포인트 저장하고 불러오기","local":"체크포인트-저장하고-불러오기","sections":[],"depth":2},{"title":"파인튜닝","local":"파인튜닝","sections":[{"title":"여러개의 GPU로 훈련하기","local":"여러개의-gpu로-훈련하기","sections":[],"depth":3}],"depth":2}],"depth":1}';var S=T('<meta name="hf:doc:metadata"/>'),A=T('<p></p> <!> <!> <p>unconditional 이미지 생성은 text-to-image 또는 image-to-image 모델과 달리 텍스트나 이미지에 대한 조건이 없이 학습 데이터 분포와 유사한 이미지만을 생성합니다.</p> <iframe src="https://stevhliu-ddpm-butterflies-128.hf.space" frameborder="0" width="850" height="550"></iframe> <p>이 가이드에서는 기존에 존재하던 데이터셋과 자신만의 커스텀 데이터셋에 대해 unconditional image generation 모델을 훈련하는 방법을 설명합니다. 훈련 세부 사항에 대해 더 자세히 알고 싶다면 unconditional image generation을 위한 모든 학습 스크립트를 <a href="https://github.com/huggingface/diffusers/tree/main/examples/unconditional_image_generation" rel="nofollow">여기</a>에서 확인할 수 있습니다.</p> <p>스크립트를 실행하기 전, 먼저 의존성 라이브러리들을 설치해야 합니다.</p> <!> <p>그 다음 🤗 <a href="https://github.com/huggingface/accelerate/" rel="nofollow">Accelerate</a> 환경을 초기화합니다.</p> <!> <p>별도의 설정 없이 기본 설정으로 🤗 <a href="https://github.com/huggingface/accelerate/" rel="nofollow">Accelerate</a> 환경을 초기화해봅시다.</p> <!> <p>노트북과 같은 대화형 쉘을 지원하지 않는 환경의 경우, 다음과 같이 사용해볼 수도 있습니다.</p> <!> <!> <p>학습 스크립트에 다음 인자를 추가하여 허브에 모델을 업로드할 수 있습니다.</p> <!> <!> <p>훈련 중 문제가 발생할 경우를 대비하여 체크포인트를 정기적으로 저장하는 것이 좋습니다. 체크포인트를 저장하려면 학습 스크립트에 다음 인자를 전달합니다:</p> <!> <p>전체 훈련 상태는 500스텝마다 <code>output_dir</code>의 하위 폴더에 저장되며, 학습 스크립트에 <code>--resume_from_checkpoint</code> 인자를 전달함으로써 체크포인트를 불러오고 훈련을 재개할 수 있습니다.</p> <!> <!> <p>이제 학습 스크립트를 시작할 준비가 되었습니다! <code>--dataset_name</code> 인자에 파인튜닝할 데이터셋 이름을 지정한 다음, <code>--output_dir</code> 인자에 지정된 경로로 저장합니다. 본인만의 데이터셋를 사용하려면, <a href="create_dataset">학습용 데이터셋 만들기</a> 가이드를 참조하세요.</p> <p>학습 스크립트는 <code>diffusion_pytorch_model.bin</code> 파일을 생성하고, 그것을 당신의 리포지토리에 저장합니다.</p> <blockquote class="tip"><p>💡 전체 학습은 V100 GPU 4개를 사용할 경우, 2시간이 소요됩니다.</p></blockquote> <p>예를 들어, <a href="https://huggingface.co/datasets/huggan/flowers-102-categories" rel="nofollow">Oxford Flowers</a> 데이터셋을 사용해 파인튜닝할 경우:</p> <!> <div class="flex justify-center"><img src="https://user-images.githubusercontent.com/26864830/180248660-a0b143d0-b89a-42c5-8656-2ebf6ece7e52.png"/></div> [Naruto](https://huggingface.co/datasets/lambdalabs/naruto-blip-captions) 데이터셋을 사용할 경우: <!> <div class="flex justify-center"><img src="https://user-images.githubusercontent.com/26864830/180248200-928953b4-db38-48db-b0c6-8b740fe6786f.png"/></div> <!> <p><code>accelerate</code>을 사용하면 원활한 다중 GPU 훈련이 가능합니다. <code>accelerate</code>을 사용하여 분산 훈련을 실행하려면 <a href="https://huggingface.co/docs/accelerate/basic_tutorials/launch" rel="nofollow">여기</a> 지침을 따르세요. 다음은 명령어 예제입니다.</p> <!> <!> <p></p>',1);function F(_,j){Y(j,!1),I(()=>{new URLSearchParams(window.location.search).get("fw")}),Z();var l=A();N("eur7zo",w=>{var J=S();R(J,"content",E),f(w,J)});var n=a(G(l),2);X(n,{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"});var o=a(n,2);e(o,{title:"Unconditional 이미지 생성",local:"unconditional-이미지-생성",headingTag:"h1"});var s=a(o,10);t(s,{code:"cGlwJTIwaW5zdGFsbCUyMGRpZmZ1c2VycyU1QnRyYWluaW5nJTVEJTIwYWNjZWxlcmF0ZSUyMGRhdGFzZXRz",highlighted:"pip install diffusers[training] accelerate datasets",lang:"bash",wrap:!1});var c=a(s,4);t(c,{code:"YWNjZWxlcmF0ZSUyMGNvbmZpZw==",highlighted:"accelerate config",lang:"bash",wrap:!1});var i=a(c,4);t(i,{code:"YWNjZWxlcmF0ZSUyMGNvbmZpZyUyMGRlZmF1bHQ=",highlighted:"accelerate config default",lang:"bash",wrap:!1});var d=a(i,4);t(d,{code:"ZnJvbSUyMGFjY2VsZXJhdGUudXRpbHMlMjBpbXBvcnQlMjB3cml0ZV9iYXNpY19jb25maWclMEElMEF3cml0ZV9iYXNpY19jb25maWcoKQ==",highlighted:`<span class="hljs-keyword">from</span> accelerate.utils <span class="hljs-keyword">import</span> write_basic_config
write_basic_config()`,lang:"py",wrap:!1});var p=a(d,2);e(p,{title:"모델을 허브에 업로드하기",local:"모델을-허브에-업로드하기",headingTag:"h2"});var r=a(p,4);t(r,{code:"LS1wdXNoX3RvX2h1Yg==",highlighted:"--push_to_hub",lang:"bash",wrap:!1});var h=a(r,2);e(h,{title:"체크포인트 저장하고 불러오기",local:"체크포인트-저장하고-불러오기",headingTag:"h2"});var u=a(h,4);t(u,{code:"LS1jaGVja3BvaW50aW5nX3N0ZXBzJTNENTAw",highlighted:"--checkpointing_steps=500",lang:"bash",wrap:!1});var M=a(u,4);t(M,{code:"LS1yZXN1bWVfZnJvbV9jaGVja3BvaW50JTNEJTIyY2hlY2twb2ludC0xNTAwJTIy",highlighted:'--resume_from_checkpoint=<span class="hljs-string">&quot;checkpoint-1500&quot;</span>',lang:"bash",wrap:!1});var g=a(M,2);e(g,{title:"파인튜닝",local:"파인튜닝",headingTag:"h2"});var m=a(g,10);t(m,{code:"YWNjZWxlcmF0ZSUyMGxhdW5jaCUyMHRyYWluX3VuY29uZGl0aW9uYWwucHklMjAlNUMlMEElMjAlMjAtLWRhdGFzZXRfbmFtZSUzRCUyMmh1Z2dhbiUyRmZsb3dlcnMtMTAyLWNhdGVnb3JpZXMlMjIlMjAlNUMlMEElMjAlMjAtLXJlc29sdXRpb24lM0Q2NCUyMCU1QyUwQSUyMCUyMC0tb3V0cHV0X2RpciUzRCUyMmRkcG0tZW1hLWZsb3dlcnMtNjQlMjIlMjAlNUMlMEElMjAlMjAtLXRyYWluX2JhdGNoX3NpemUlM0QxNiUyMCU1QyUwQSUyMCUyMC0tbnVtX2Vwb2NocyUzRDEwMCUyMCU1QyUwQSUyMCUyMC0tZ3JhZGllbnRfYWNjdW11bGF0aW9uX3N0ZXBzJTNEMSUyMCU1QyUwQSUyMCUyMC0tbGVhcm5pbmdfcmF0ZSUzRDFlLTQlMjAlNUMlMEElMjAlMjAtLWxyX3dhcm11cF9zdGVwcyUzRDUwMCUyMCU1QyUwQSUyMCUyMC0tbWl4ZWRfcHJlY2lzaW9uJTNEbm8lMjAlNUMlMEElMjAlMjAtLXB1c2hfdG9faHVi",highlighted:`accelerate launch train_unconditional.py \\
--dataset_name=<span class="hljs-string">&quot;huggan/flowers-102-categories&quot;</span> \\
--resolution=64 \\
--output_dir=<span class="hljs-string">&quot;ddpm-ema-flowers-64&quot;</span> \\
--train_batch_size=16 \\
--num_epochs=100 \\
--gradient_accumulation_steps=1 \\
--learning_rate=1e-4 \\
--lr_warmup_steps=500 \\
--mixed_precision=no \\
--push_to_hub`,lang:"bash",wrap:!1});var b=a(m,4);t(b,{code:"YWNjZWxlcmF0ZSUyMGxhdW5jaCUyMHRyYWluX3VuY29uZGl0aW9uYWwucHklMjAlNUMlMEElMjAlMjAtLWRhdGFzZXRfbmFtZSUzRCUyMmxhbWJkYWxhYnMlMkZuYXJ1dG8tYmxpcC1jYXB0aW9ucyUyMiUyMCU1QyUwQSUyMCUyMC0tcmVzb2x1dGlvbiUzRDY0JTIwJTVDJTBBJTIwJTIwLS1vdXRwdXRfZGlyJTNEJTIyZGRwbS1lbWEtbmFydXRvLTY0JTIyJTIwJTVDJTBBJTIwJTIwLS10cmFpbl9iYXRjaF9zaXplJTNEMTYlMjAlNUMlMEElMjAlMjAtLW51bV9lcG9jaHMlM0QxMDAlMjAlNUMlMEElMjAlMjAtLWdyYWRpZW50X2FjY3VtdWxhdGlvbl9zdGVwcyUzRDElMjAlNUMlMEElMjAlMjAtLWxlYXJuaW5nX3JhdGUlM0QxZS00JTIwJTVDJTBBJTIwJTIwLS1scl93YXJtdXBfc3RlcHMlM0Q1MDAlMjAlNUMlMEElMjAlMjAtLW1peGVkX3ByZWNpc2lvbiUzRG5vJTIwJTVDJTBBJTIwJTIwLS1wdXNoX3RvX2h1Yg==",highlighted:`accelerate launch train_unconditional.py \\
--dataset_name=<span class="hljs-string">&quot;lambdalabs/naruto-blip-captions&quot;</span> \\
--resolution=64 \\
--output_dir=<span class="hljs-string">&quot;ddpm-ema-naruto-64&quot;</span> \\
--train_batch_size=16 \\
--num_epochs=100 \\
--gradient_accumulation_steps=1 \\
--learning_rate=1e-4 \\
--lr_warmup_steps=500 \\
--mixed_precision=no \\
--push_to_hub`,lang:"bash",wrap:!1});var y=a(b,4);e(y,{title:"여러개의 GPU로 훈련하기",local:"여러개의-gpu로-훈련하기",headingTag:"h3"});var U=a(y,4);t(U,{code:"YWNjZWxlcmF0ZSUyMGxhdW5jaCUyMC0tbWl4ZWRfcHJlY2lzaW9uJTNEJTIyZnAxNiUyMiUyMC0tbXVsdGlfZ3B1JTIwdHJhaW5fdW5jb25kaXRpb25hbC5weSUyMCU1QyUwQSUyMCUyMC0tZGF0YXNldF9uYW1lJTNEJTIybGFtYmRhbGFicyUyRm5hcnV0by1ibGlwLWNhcHRpb25zJTIyJTIwJTVDJTBBJTIwJTIwLS1yZXNvbHV0aW9uJTNENjQlMjAtLWNlbnRlcl9jcm9wJTIwLS1yYW5kb21fZmxpcCUyMCU1QyUwQSUyMCUyMC0tb3V0cHV0X2RpciUzRCUyMmRkcG0tZW1hLW5hcnV0by02NCUyMiUyMCU1QyUwQSUyMCUyMC0tdHJhaW5fYmF0Y2hfc2l6ZSUzRDE2JTIwJTVDJTBBJTIwJTIwLS1udW1fZXBvY2hzJTNEMTAwJTIwJTVDJTBBJTIwJTIwLS1ncmFkaWVudF9hY2N1bXVsYXRpb25fc3RlcHMlM0QxJTIwJTVDJTBBJTIwJTIwLS11c2VfZW1hJTIwJTVDJTBBJTIwJTIwLS1sZWFybmluZ19yYXRlJTNEMWUtNCUyMCU1QyUwQSUyMCUyMC0tbHJfd2FybXVwX3N0ZXBzJTNENTAwJTIwJTVDJTBBJTIwJTIwLS1taXhlZF9wcmVjaXNpb24lM0QlMjJmcDE2JTIyJTIwJTVDJTBBJTIwJTIwLS1sb2dnZXIlM0QlMjJ3YW5kYiUyMiUyMCU1QyUwQSUyMCUyMC0tcHVzaF90b19odWI=",highlighted:`accelerate launch --mixed_precision=<span class="hljs-string">&quot;fp16&quot;</span> --multi_gpu train_unconditional.py \\
--dataset_name=<span class="hljs-string">&quot;lambdalabs/naruto-blip-captions&quot;</span> \\
--resolution=64 --center_crop --random_flip \\
--output_dir=<span class="hljs-string">&quot;ddpm-ema-naruto-64&quot;</span> \\
--train_batch_size=16 \\
--num_epochs=100 \\
--gradient_accumulation_steps=1 \\
--use_ema \\
--learning_rate=1e-4 \\
--lr_warmup_steps=500 \\
--mixed_precision=<span class="hljs-string">&quot;fp16&quot;</span> \\
--logger=<span class="hljs-string">&quot;wandb&quot;</span> \\
--push_to_hub`,lang:"bash",wrap:!1});var W=a(U,2);C(W,{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/ko/training/unconditional_training.md"}),v(2),f(_,l),V()}export{F as component};

Xet Storage Details

Size:
10.4 kB
·
Xet hash:
a969ce2ea6d767f760fdec9da5e714109196abbb5cb71ae674a4b2665f1a7c9c

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.