code: def DNN(input_shape,
             dense_layers,
             output_layer=[1, 'sigmoid'],
             optimizer='adam',
             loss='binary_crossentropy'):
      
  
      inputs = Input(shape=input_shape)
      
      dense = inputs
  
      for i, d in enumerate(dense_layers):
          dense = Dense(d, activation='relu')(dense)
          dense = BatchNormalization()(dense)
          dense = Dropout(0.3)(dense)
      
      output = Dense(output_layer[0], activation=output_layer[1])(dense)
      
      model = Model(inputs=inputs, outputs=output)
      model.compile(loss=loss, optimizer=optimizer, metrics=['accuracy'])
      
      return model
docs: Summary
      
      Args:
          input_shape (list): The shape of the input layer
          targets (int): Number of targets
          dense_layers (list): Dense layer descriptor [fully_connected]
          optimizer (str or object optional): Keras optimizer as string or keras optimizer
      
      Returns:
          TYPE: model, build_arguments