class_docstr: ## Configurations
class_docstr_tok: ["#","#","Configurations"]
code: def init(self):
      # Create $\textcolor{lightgreen}{\epsilon_\theta}(x_t, t)$ model
      self.eps_model = UNet(
          image_channels=self.image_channels,
          n_channels=self.n_channels,
          ch_mults=self.channel_multipliers,
          is_attn=self.is_attention,
      ).to(self.device)
  
      # Create [DDPM class](index.html)
      self.diffusion = DenoiseDiffusion(
          eps_model=self.eps_model,
          n_steps=self.n_steps,
          device=self.device,
      )
  
      # Create dataloader
      self.data_loader = torch.utils.data.DataLoader(
          self.dataset, self.batch_size, shuffle=True, pin_memory=True
      )
      # Create optimizer
      self.optimizer = torch.optim.Adam(
          self.eps_model.parameters(), lr=self.learning_rate
      )
  
      # Image logging
      tracker.set_image("sample", True)
  
imports: from typing import List
  import torch
  import torch.utils.data
  import torchvision
  from PIL import Image
  from labml import lab, tracker, experiment, monit
  from labml.configs import BaseConfigs, option
  from labml_helpers.device import DeviceConfigs
  from labml_nn.diffusion.ddpm import DenoiseDiffusion
  from labml_nn.diffusion.ddpm.unet import UNet
label_desc: Use image node_id 1 for calling the Configs obj's underlying member method code with example usage: obj.init() without return types