code: def __init__(self, cfg, name=None):
      super(ErnieBlock, self).__init__()
      d_model = cfg["hidden_size"]
      self.attn = AttentionLayer(
          cfg, name=append_name(name, "multi_head_att")
      )
      self.ln1 = _build_ln(d_model, name=append_name(name, "post_att"))
      self.ffn = PositionwiseFeedForwardLayer(
          cfg, name=append_name(name, "ffn")
      )
      self.ln2 = _build_ln(d_model, name=append_name(name, "post_ffn"))
      prob = cfg.get(
          "intermediate_dropout_prob", cfg["hidden_dropout_prob"]
      )
      self.dropout = nn.Dropout(p=prob)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from __future__ import unicode_literals
  import json
  import logging
  import math
  import six
  import numpy
  import paddle
  from paddle import nn
  from paddle.nn import functional
  from disco_diffusion_ernievil_base.vit_b_16x.ernievil2.transformers.file_utils import _fetch_from_remote, add_docstring
label_desc: Use image node_id 1 to create a new ErnieBlock object from inherited base classes: nn with example: obj = ErnieBlock(cfg, name)