How dongjin-seo2020/adjointdiffusion works
AdjointDiffusion generates fabrication-aware structures with diffusion models, then guides reverse sampling using electromagnetic simulation and adjoint gradients. The documented workflow runs from dataset generation through model training to sampling and optimization; baseline optimizers provide comparison methods. The graph includes the central diffusion, training, simulation, and baseline modules. Some connections are based on the README or SOURCE INDEX because their implementation files were not excerpted; uncertain wiring is omitted.
Main entry points: image_sample.py Sampling entry · image_train.py Training entry · train_util.py Training loop · script_util.py Model factory
Components 24
Design workflow
- Dataset generation
dataset_generation.py - Fabrication data
- Sampling entry
image_sample.py - Adjoint simulation
guided_diffusion/simulation.py - Simulation module
simulation.py
Diffusion model
- Model factory
guided_diffusion/script_util.py - UNet model
guided_diffusion/unet.py - Diffusion process
guided_diffusion/gaussian_diffusion.py - Timestep spacing
guided_diffusion/respace.py - Diffusion losses
guided_diffusion/losses.py - Network utilities
guided_diffusion/nn.py
Training runtime
- Training entry
image_train.py - Image loader
guided_diffusion/image_datasets.py - Schedule sampler
guided_diffusion/resample.py - Training loop
guided_diffusion/train_util.py - Mixed precision
guided_diffusion/fp16_util.py - Distributed utilities
guided_diffusion/dist_util.py - Experiment logger
guided_diffusion/logger.py
Baseline optimization
- GA CIS baseline
baseline_algorithms/[adjoint_optimization] GA_CIS.py - GA waveguide baseline
baseline_algorithms/[adjoint_optimization] GA_waveguide.py - NLopt CIS baseline
baseline_algorithms/[adjoint_optimization] nlopt_CIS.py - NLopt waveguide baseline
baseline_algorithms/[adjoint_optimization] nlopt_waveguide.py
Other components
- Researcher
- Weights & Biases
Connections 28
- Researcher → Dataset generation: generates
README.md - Dataset generation → Fabrication data: writes structures
README.md - Researcher → Training entry: starts training
README.md - Fabrication data → Image loader: loads images
- Training entry → Image loader: loads data
image_train.py - Training entry → Model factory: creates model
image_train.py - Training entry → Schedule sampler: creates sampler
image_train.py - Training entry → Training loop: starts loop
image_train.py - Model factory → UNet model: constructs
guided_diffusion/script_util.py - Model factory → Diffusion process: constructs
guided_diffusion/script_util.py - Model factory → Timestep spacing: uses spacing
guided_diffusion/script_util.py - Diffusion process → Adjoint simulation: requests gradients
guided_diffusion/gaussian_diffusion.py - Training loop → Diffusion process: computes training loss
guided_diffusion/train_util.py - Training loop → Mixed precision: trains parameters
guided_diffusion/train_util.py - Training loop → Distributed utilities: synchronizes ranks
guided_diffusion/train_util.py - Training loop → Experiment logger: logs progress
guided_diffusion/train_util.py - Schedule sampler → Diffusion process: samples timesteps
guided_diffusion/resample.py - UNet model → Network utilities: uses utilities
guided_diffusion/unet.py - Researcher → Sampling entry: starts sampling
README.md - Sampling entry → Model factory: creates model
image_sample.py - Sampling entry → Diffusion process: samples designs
README.md - Sampling entry → Adjoint simulation: configures simulation
- Sampling entry → Experiment logger: logs outputs
image_sample.py - Adjoint simulation → Weights & Biases: tracks experiments
README.md - Researcher → GA CIS baseline: runs baseline
README.md - Researcher → GA waveguide baseline: runs baseline
README.md - Researcher → NLopt CIS baseline: runs baseline
README.md - Researcher → NLopt waveguide baseline: runs baseline
README.md