mirror of
https://github.com/kohya-ss/sd-scripts.git
synced 2026-04-08 22:35:09 +00:00
Allow negative learning rate
This can be used to train away from a group of images you don't want As this moves the model away from a point instead of towards it, the change in the model is unbounded So, don't set it too low. -4e-7 seemed to work well.
This commit is contained in:
@@ -272,7 +272,7 @@ def train(args):
|
|||||||
# 学習を準備する:モデルを適切な状態にする
|
# 学習を準備する:モデルを適切な状態にする
|
||||||
if args.gradient_checkpointing:
|
if args.gradient_checkpointing:
|
||||||
unet.enable_gradient_checkpointing()
|
unet.enable_gradient_checkpointing()
|
||||||
train_unet = args.learning_rate > 0
|
train_unet = args.learning_rate != 0
|
||||||
train_text_encoder1 = False
|
train_text_encoder1 = False
|
||||||
train_text_encoder2 = False
|
train_text_encoder2 = False
|
||||||
|
|
||||||
@@ -284,8 +284,8 @@ def train(args):
|
|||||||
text_encoder2.gradient_checkpointing_enable()
|
text_encoder2.gradient_checkpointing_enable()
|
||||||
lr_te1 = args.learning_rate_te1 if args.learning_rate_te1 is not None else args.learning_rate # 0 means not train
|
lr_te1 = args.learning_rate_te1 if args.learning_rate_te1 is not None else args.learning_rate # 0 means not train
|
||||||
lr_te2 = args.learning_rate_te2 if args.learning_rate_te2 is not None else args.learning_rate # 0 means not train
|
lr_te2 = args.learning_rate_te2 if args.learning_rate_te2 is not None else args.learning_rate # 0 means not train
|
||||||
train_text_encoder1 = lr_te1 > 0
|
train_text_encoder1 = lr_te1 != 0
|
||||||
train_text_encoder2 = lr_te2 > 0
|
train_text_encoder2 = lr_te2 != 0
|
||||||
|
|
||||||
# caching one text encoder output is not supported
|
# caching one text encoder output is not supported
|
||||||
if not train_text_encoder1:
|
if not train_text_encoder1:
|
||||||
|
|||||||
Reference in New Issue
Block a user