class_docstr: Performs constrained coordinate descent on the architecture.
  
  This algorithm searches convolutions then inserts reduction blocks after
  every phoenix_spec.num_blocks_in_cell blocks. If phoenix_spec.replicate_cell
  is True, then only the first phoenix_spec.num_blocks_in_cell will be search
  via mutation and the whole architecture will be replicated with reduction
  blocks between each cell.
docstr: Removes any reduction blocks from the architecture.
docstr_tok: ["Removes","any","reduction","blocks","from","the","architecture","."]
code: def _remove_reduction_blocks(self, architecture):
      """Removes any reduction blocks from the architecture."""
      result = []
      for block in architecture:
          if self._is_reduction_block(block):
              continue
          result.append(block)
      return np.array(result)
  
file_path: model_search/model_search/search/constrained_descent.py
imports: from absl import logging
  from model_search import block_builder
  from model_search.architecture import architecture_utils
  from model_search.search import common
  from model_search.search import search_algorithm
  import numpy
label_desc: Use image node_id 3 for calling the ConstrainedDescent obj's underlying member method code with example usage: obj._remove_reduction_blocks(architecture) and returns: np