Skip to content

Bugfix/esd eval framework #9

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 10 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions mu/algorithms/esd/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
src/*
2 changes: 2 additions & 0 deletions mu/algorithms/esd/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@
from .model import ESDModel
from .sampler import ESDSampler
from .trainer import ESDTrainer
from .evalutator import ESDEvaluator

__all__ = [
'ESDAlgorithm',
'ESDModel',
'ESDSampler',
'ESDTrainer',
'ESDEvaluator'
]
20 changes: 20 additions & 0 deletions mu/algorithms/esd/configs/evaluation_config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
model_config: "mu/algorithms/esd/configs/generate_sd.yaml"
ckpt_path: "outputs/esd/finetuned_models/esd_Abstractionism_model.pth"
theme: "Abstractionism"
cfg_text: 9.0
seed: 188
task: "class"
ddim_steps: 100
image_height: 512
image_width: 512
ddim_eta: 0.0
sampler_output_dir: "outputs/eval_results/mu_results/esd/"
seed_list: ["188"]
# classification_model: "vit_large_patch16_224.augreg_in21k"
classification_model: "vit_large_patch16_224"
classification_ckpt: "outputs/esd/finetuned_models/esd_Abstractionism_model.pth"
eval_output_dir: "outputs/eval_results/mu_results/esd/"
reference_dir: "/home/ubuntu/Projects/msu_unlearningalgorithm/data/quick-canvas-dataset/sample/"
forget_theme: "Abstractionism"
fid_output_path: "outputs/eval_results/mu_results/esd/"
multiprocessing: "False"
70 changes: 70 additions & 0 deletions mu/algorithms/esd/configs/generate_sd.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
model:
base_learning_rate: 1.0e-04
target: stable_diffusion.ldm.models.diffusion.ddpm.LatentDiffusion
params:
linear_start: 0.00085
linear_end: 0.0120
num_timesteps_cond: 1
log_every_t: 200
timesteps: 1000
first_stage_key: "jpg"
cond_stage_key: "txt"
image_size: 64
channels: 4
cond_stage_trainable: false # Note: different from the one we trained before
conditioning_key: crossattn
monitor: val/loss_simple_ema
scale_factor: 0.18215
use_ema: False

scheduler_config: # 10000 warmup steps
target: stable_diffusion.ldm.lr_scheduler.LambdaLinearScheduler
params:
warm_up_steps: [ 10000 ]
cycle_lengths: [ 10000000000000 ] # incredibly large number to prevent corner cases
f_start: [ 1.e-6 ]
f_max: [ 1. ]
f_min: [ 1. ]

unet_config:
target: stable_diffusion.ldm.modules.diffusionmodules.openaimodel.UNetModel
params:
image_size: 32 # unused
in_channels: 4
out_channels: 4
model_channels: 320
attention_resolutions: [ 4, 2, 1 ]
num_res_blocks: 2
channel_mult: [ 1, 2, 4, 4 ]
num_heads: 8
use_spatial_transformer: True
transformer_depth: 1
context_dim: 768
use_checkpoint: True
legacy: False

first_stage_config:
target: stable_diffusion.ldm.models.autoencoder.AutoencoderKL
params:
embed_dim: 4
monitor: val/rec_loss
ddconfig:
double_z: true
z_channels: 4
resolution: 256
in_channels: 3
out_ch: 3
ch: 128
ch_mult:
- 1
- 2
- 4
- 4
num_res_blocks: 2
attn_resolutions: []
dropout: 0.0
lossconfig:
target: torch.nn.Identity

cond_stage_config:
target: stable_diffusion.ldm.modules.encoders.modules.FrozenCLIPEmbedder
6 changes: 4 additions & 2 deletions mu/algorithms/esd/configs/train_config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,12 @@ ddim_steps: 50 # Optional: DDIM steps of inference

# Model configuration
model_config_path: "mu/algorithms/esd/configs/model_config.yaml"
ckpt_path: "models/compvis/style50/compvis.ckpt" # Checkpoint path for Stable Diffusion
ckpt_path: "/home/ubuntu/Projects/UnlearnCanvas/UnlearnCanvas/machine_unlearning/models/compvis/style50/compvis.ckpt" # Checkpoint path for Stable Diffusion

# Dataset directories
raw_dataset_dir: "data/quick-canvas-dataset/sample"
# raw_dataset_dir: "data/quick-canvas-dataset/sample"

raw_dataset_dir: "/home/ubuntu/Projects/msu_unlearningalgorithm/data/quick-canvas-dataset/sample"
processed_dataset_dir: "mu/algorithms/esd/data"
dataset_type: "unlearncanvas" # Choices: ['unlearncanvas', 'i2p']
template: "style" # Choices: ['object', 'style', 'i2p']
Expand Down
2 changes: 1 addition & 1 deletion mu/algorithms/esd/environment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ dependencies:
- h5py # This is for ICL_Inpainting
- xtcocotools # This is for ICL_Inpainting
- natsort # This is for ICL_Inpainting
- timm==0.3.2 # This is for ICL_Inpainting
- timm==0.6.7 # This is for ICL_Inpainting
- git+https://github.com/cocodataset/panopticapi.git # This is for ICL_Inpainting
- fairscale # This is for ICL_Inpainting
- git+https://github.com/facebookresearch/detectron2.git # This is for ICL_Inpainting
Expand Down
Loading