torch と cuda の tips
カテゴリ:deeplearning
CUDA は後方互換性があるので、nvcc -V の出力より前のライブラリでビルドされているものも実行できる。
Pytorch モデルを fp16 で動作させる方法
カテゴリ:deeplearning
pytorch のモデルは half() を呼び出せば fp16 になる。しかし、LayerNormalization などのレイヤーは非常に小さな値を扱うので、fp32 で動作させた方が良い。
SDXL Q8_0 量子化が流行らない理由
カテゴリ:deeplearning
VRAM を 800 MB 節約できるだけで、生成速度は fp16 と変わらないから。
Python 3.13 で kohya-ss sd-scripts の環境構築
カテゴリ:deeplearning
xformers は使わない(--sdpa を使う)ので入れていない。
NovelAI Diffusion V3 の改善点
カテゴリ:deeplearning
バッチ正規化の Tips
カテゴリ:deeplearning
バッチ正規化自体に性能を向上させる能力はない
NVIDIA の AMP が遅くなる理由
カテゴリ:deeplearning
GAN の学習
カテゴリ:deeplearning
llama-cpp-python + CUDA + Windows ビルドメモ
カテゴリ:deeplearning
Stable Diffusion のファインチューンの Tips
カテゴリ:deeplearning
LoRA はLoRA の学習方法へ移動した。
LoRA 以外の情報(Hypernetwork や Textual Inversion、Dreambooth)はStable Diffusion の古い情報へ移動した。
目次
U-Net の学習
わかりやすい解説として「U-Net は画像のデノイズを行う」という説明がされるが、これは正確には間違いだ。U-Net は除去すべきノイズを出力する。
学習のプロセスは以下のようになる。
- ランダムにタイムステップ t ∈ [0, 1000]を選ぶ
- 教師画像にタイムステップ t に対応するノイズを付与する
- U-Net にノイズを付与した教師画像とタイムステップ t とコンテクスト(embedding 化したキャプション)を入力
- U-Net が除去すべきノイズを出力する
- 付与したノイズと U-Net が出力したノイズとの差分から平均二乗誤差(MSE)を計算する
- 差分を逆伝播して学習する
タイムステップはノイズの量をきめる。0 が教師画像そのもので、1000 が純粋なノイズ画像だ。
概要
2023 年8月現在 LoRA 一強の状況で、Textual Inversion・Hypernetwork・Dreambooth(正則化画像) はほとんど使われていない。