code: def sample_sizes(self, lower, upper, width, gauss_mean):
      if self.gauss_sampling:
          gauss_samples = torch.zeros(self.batch_size).normal_(
              mean=gauss_mean, std=self.gauss_std
          )
          outside_bounds_mask = (gauss_samples > upper) | (
              gauss_samples < upper
          )
          gauss_samples[outside_bounds_mask] = torch.zeros(
              (len(gauss_samples[outside_bounds_mask]),)
          ).uniform_(lower, upper)
          sizes = (gauss_samples * width).int()
      else:
          lower *= width
          upper *= width
          sizes = torch.randint(
              int(lower), int(upper), (self.batch_size,)
          )
      return sizes
  
imports: import os
  import subprocess
  import sys
  import random
  from datetime import datetime
  from pathlib import Path
  import torch
  import torch.nn.functional
  from siren_pytorch import SirenNet, SirenWrapper
  from torch import nn
  from torch.cuda.amp import GradScaler, autocast
  from torch_optimizer import DiffGrad, AdamP
  import numpy
  from PIL import Image
  from imageio import imread, mimsave
  import torchvision.transforms
  from tqdm import trange, tqdm
  from .clip import load, tokenize
label_desc: Use image node_id 2 for calling the DeepDaze obj's underlying member method code with example usage: obj.sample_sizes(lower, upper, width, gauss_mean) and returns: sizes