# pytorch_lightning==1.8.1
seed_everything: true
trainer:
  logger:
    class_path: pytorch_lightning.loggers.TensorBoardLogger
    init_args:
      save_dir: logs
      name: img_clf
      version: null
      log_graph: false
      default_hp_metric: true
      prefix: ''
      sub_dir: null
      #comment: ''
      #purge_step: null
      #max_queue: 10
      #flush_secs: 120
      #filename_suffix: ''
  enable_checkpointing: true
  callbacks:
  - class_path: pytorch_lightning.callbacks.LearningRateMonitor
    init_args:
      logging_interval: step
      log_momentum: false
  - class_path: pytorch_lightning.callbacks.ModelCheckpoint
    init_args:
      dirpath: null
      filename: '{epoch:03d}-{val_loss:.3f}'
      monitor: val_loss
      verbose: false
      save_last: null
      save_top_k: 1
      save_weights_only: true
      mode: min
      auto_insert_metric_name: true
      every_n_train_steps: null
      train_time_interval: null
      every_n_epochs: null
      save_on_train_epoch_end: null
  default_root_dir: logs
  gradient_clip_val: null
  gradient_clip_algorithm: null
  num_nodes: 1
  #num_processes: null
  devices: '4'
  #gpus: null
  #auto_select_gpus: false
  #tpu_cores: null
  #ipus: null
  enable_progress_bar: true
  overfit_batches: 0.0
  #track_grad_norm: -1
  check_val_every_n_epoch: 1
  fast_dev_run: false
  accumulate_grad_batches: null
  max_epochs: 30
  min_epochs: null
  max_steps: -1
  min_steps: null
  max_time: null
  limit_train_batches: null
  limit_val_batches: null
  limit_test_batches: null
  limit_predict_batches: null
  val_check_interval: null
  log_every_n_steps: 50
  accelerator: gpu
  strategy: ddp_find_unused_parameters_false
  sync_batchnorm: false
  precision: 32
  enable_model_summary: true
  num_sanity_val_steps: 2
  #resume_from_checkpoint: null
  profiler: null
  benchmark: null
  deterministic: null
  reload_dataloaders_every_n_epochs: 0
  #auto_lr_find: false
  #replace_sampler_ddp: true
  detect_anomaly: false
  #auto_scale_batch_size: false
  plugins: null
  #amp_backend: native
  #amp_level: null
  #move_metrics_to_cpu: false
  #multiple_trainloader_mode: max_size_cycle
  #inference_mode: true
model:
  encoder:
    num_cross_attention_heads: 1
    num_cross_attention_qk_channels: null
    num_cross_attention_v_channels: null
    num_cross_attention_layers: 2
    first_cross_attention_layer_shared: false
    cross_attention_widening_factor: 1
    num_self_attention_heads: 8
    num_self_attention_qk_channels: null
    num_self_attention_v_channels: null
    num_self_attention_layers_per_block: 3
    num_self_attention_blocks: 3
    first_self_attention_block_shared: false
    self_attention_widening_factor: 1
    dropout: 0.1
    init_scale: 0.1
    freeze: false
    num_frequency_bands: 32
  decoder:
    num_cross_attention_heads: 1
    num_cross_attention_qk_channels: null
    num_cross_attention_v_channels: null
    cross_attention_widening_factor: 1
    cross_attention_residual: true
    dropout: 0.1
    init_scale: 0.1
    freeze: false
    num_output_queries: 1
    num_output_query_channels: 128
  num_latents: 32
  num_latent_channels: 128
  activation_checkpointing: false
  activation_offloading: false
  params: null
lr_scheduler:
  warmup_steps: 500
  last_epoch: -1
ckpt_path: null
data:
  class_path: perceiver.data.vision.MNISTDataModule
  init_args:
    dataset_dir: .cache/mnist
    normalize: true
    channels_last: true
    random_crop: null
    batch_size: 64
    num_workers: 3
    pin_memory: true
    shuffle: true
optimizer:
  class_path: torch.optim.AdamW
  init_args:
    lr: 0.001
    betas:
    - 0.9
    - 0.999
    eps: 1.0e-08
    weight_decay: 0.01
    amsgrad: false
    maximize: false
    foreach: null
    capturable: false
