code: def __init__(
      self,
      hidden_neurons=[128, 64],
      dropout_rate=0.2,
      batch_norm=True,
      preprocessing=True,
  ):
      super(inner_autoencoder, self).__init__()
      self.n_features_ = 200
      self.dropout_rate = dropout_rate
      self.batch_norm = batch_norm
  
      self.layers_neurons_ = [self.n_features_, *hidden_neurons]
      self.layers_neurons_decoder_ = self.layers_neurons_[::-1]
      self.encoder = nn.Sequential()
      self.decoder = nn.Sequential()
      # print(self.layers_neurons_decoder_)
  
      for idx, layer in enumerate(self.layers_neurons_[:-1]):
          if batch_norm:
              self.encoder.add_module(
                  "batch_norm" + str(idx),
                  nn.BatchNorm1d(self.layers_neurons_[idx]),
              )
          self.encoder.add_module(
              "linear" + str(idx),
              torch.nn.Linear(
                  self.layers_neurons_[idx],
                  self.layers_neurons_[idx + 1],
              ),
          )
          self.encoder.add_module("relu" + str(idx), torch.nn.ReLU())
          self.encoder.add_module(
              "dropout" + str(idx), torch.nn.Dropout(dropout_rate)
          )
  
      for idx, layer in enumerate(self.layers_neurons_[:-1]):
          if batch_norm:
              self.decoder.add_module(
                  "batch_norm" + str(idx),
                  nn.BatchNorm1d(self.layers_neurons_decoder_[idx]),
              )
          self.decoder.add_module(
              "linear" + str(idx),
              torch.nn.Linear(
                  self.layers_neurons_decoder_[idx],
                  self.layers_neurons_decoder_[idx + 1],
              ),
          )
          self.decoder.add_module("relu" + str(idx), torch.nn.ReLU())
          self.decoder.add_module(
              "dropout" + str(idx), torch.nn.Dropout(dropout_rate)
          )
  
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 inner_autoencoder object from inherited base classes: nn with example: obj = inner_autoencoder(hidden_neurons, dropout_rate, batch_norm, preprocessing)