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.
code: def _is_reduction_block(self, block):
      name = block_builder.BlockType(block).name
      return (
          "REDUCTION" in name or "DOWNSAMPLE" in name or "POOL" in name
      )
  
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 2 for calling the ConstrainedDescent obj's underlying member method code with example usage: obj._is_reduction_block(block) and returns: unknown