code: def get_in_out_channels(
      i, num_layers, n_features, n_hidden, n_output, skip_connection
  ):
      if skip_connection is False:
          in_channels = n_features if i == 0 else n_hidden[i - 1]
          out_channels = n_output if i == num_layers else n_hidden[i]
      else:
          in_channels = (
              n_features
              if i == 0
              else np.sum(n_hidden[:i]) + n_features
          )
          out_channels = n_output if i == num_layers else n_hidden[i]
      return in_channels, out_channels
  
imports: from __future__ import division
  from __future__ import print_function
  import numpy
  import torch
  from sklearn.utils import check_array
  from sklearn.utils.validation import check_is_fitted
  from sklearn.ensemble import IsolationForest
  from sklearn.preprocessing import StandardScaler, MinMaxScaler
  from torch.utils.data import DataLoader
  from .base import BaseDetector
  from ..utils.torch_utility import get_activation_by_name
label_desc: Use image node_id 3 for calling the MLPnet obj's underlying member method code with example usage: obj.get_in_out_channels(i, num_layers, n_features, n_hidden, n_output, skip_connection) and returns: in_channels,  out_channels