code: def __init__(
      self,
      hidden_neurons=None,
      # hidden_activation='relu',
      # output_activation='sigmoid',
      batch_norm=True,
      # loss='mse',
      # optimizer='adam',
      learning_rate=1e-3,
      epochs=100,
      batch_size=32,
      dropout_rate=0.2,
      # l2_regularizer=0.1,
      weight_decay=1e-5,
      # validation_size=0.1,
      preprocessing=True,
      # verbose=1,
      # random_state=None,
      contamination=0.1,
      device=None,
  ):
      super(AutoEncoder, self).__init__(contamination=contamination)
      self.hidden_neurons = hidden_neurons
      self.batch_norm = batch_norm
      self.learning_rate = learning_rate
  
      self.epochs = epochs
      self.batch_size = batch_size
  
      self.dropout_rate = dropout_rate
      self.weight_decay = weight_decay
      self.preprocessing = preprocessing
  
      if device is None:
          self.device = torch.device(
              "cuda:0" if torch.cuda.is_available() else "cpu"
          )
      else:
          self.device = device
  
      # default values
      if self.hidden_neurons is None:
          self.hidden_neurons = [128, 64]
  
imports: from __future__ import division
  from __future__ import print_function
  import torch
  import numpy
  from sklearn.preprocessing import StandardScaler
  from sklearn.utils import check_array
  from sklearn.utils.validation import check_is_fitted
  from pyod.utils.utility import check_parameter
  from pyod.utils.stat_models import pairwise_distances_no_broadcast
  from pyod.models.base import BaseDetector
  from pyod.utils.data import generate_data
  from pyod.utils.stat_models import pairwise_distances_no_broadcast
  from torch import nn
  from torchvision import transforms
label_desc: Use image node_id 1 to create a new AutoEncoder object from inherited base classes: BaseDetector with example: obj = AutoEncoder(hidden_neurons, batch_norm, learning_rate, epochs, batch_size, dropout_rate, weight_decay, preprocessing, contamination, device)