class_docstr: A class for modifying a neural nework using many of the operations above. 
class_docstr_tok: ["A","class","for","modifying","a","neural","nework","using","many","of","the","operations","above","."]
docstr: Returns a list of new neural networks which have undergone num_steps
  modifications.
docstr_tok: ["Returns","a","list","of","new","neural","networks","which","have","undergone","num_steps","modifications","."]
code: def get_multi_step_modifications(
      self, nn, num_steps, num_multi_step_modifications, **kwargs
  ):
      """Returns a list of new neural networks which have undergone num_steps
      modifications.
      """
      single_step_modifs = self.get_single_step_modifications(
          nn, num_multi_step_modifications, **kwargs
      )
      if num_steps == 1:
          return single_step_modifs
      else:
          ret = []
          for new_nn in single_step_modifs:
              result = self.get_multi_step_modifications(
                  new_nn, num_steps - 1, 1, **kwargs
              )
              assert len(result) <= 1
              if len(result) > 0:
                  ret.append(result[0])
              else:
                  ret.append(new_nn)
          return ret
  
imports: from argparse import Namespace
  from copy import deepcopy
  import numpy
  from .neural_network import ConvNeuralNetwork, MultiLayerPerceptron, MLP_RECTIFIERS, MLP_SIGMOIDS, is_a_pooling_layer_label, is_a_conv_layer_label, CNNImageSizeMismatchException, CNNNoConvAfterIPException
  from ..utils.general_utils import reorder_list_or_array, reorder_rows_and_cols_in_matrix
  from ..utils.option_handler import get_option_specs, load_options
  from ..utils.reporters import get_reporter
label_desc: Use image node_id 8 for calling the NNModifier obj's underlying member method code with example usage: obj.get_multi_step_modifications(nn, num_steps, num_multi_step_modifications) and returns: single_step_modifs, ret