class_docstr: Block for image data.
  
  The image blocks is a block choosing from ResNetBlock, XceptionBlock,
  ConvBlock, which is controlled by a hyperparameter, 'block_type'.
  
  # Arguments
      block_type: String. 'resnet', 'xception', 'vanilla'. The type of Block
          to use. If unspecified, it will be tuned automatically.
      normalize: Boolean. Whether to channel-wise normalize the images.
          If unspecified, it will be tuned automatically.
      augment: Boolean. Whether to do image augmentation. If unspecified,
          it will be tuned automatically.
code: def _build_block(self, hp, output_node, block_type):
      if block_type == RESNET:
          return basic.ResNetBlock().build(hp, output_node)
      elif block_type == XCEPTION:
          return basic.XceptionBlock().build(hp, output_node)
      elif block_type == VANILLA:
          return basic.ConvBlock().build(hp, output_node)
      elif block_type == EFFICIENT:
          return basic.EfficientNetBlock().build(hp, output_node)
  
imports: from typing import Optional
  from tensorflow import nest
  from autokeras.blocks import basic
  from autokeras.blocks import preprocessing
  from autokeras.blocks import reduction
  from autokeras.engine import block
label_desc: Use image node_id 3 for calling the ImageBlock obj's underlying member method code with example usage: obj._build_block(hp, output_node, block_type) and returns: basic, basic, basic, basic