code: def forward(self, inputs, attn_bias=None, past_cache=None):
      attn_out, cache = self.attn(
          inputs, inputs, inputs, attn_bias, past_cache=past_cache
      )  # self attn
      attn_out = self.dropout(attn_out)
      hidden = attn_out + inputs
      hidden = self.ln1(hidden)  # dropout/ add/ norm
  
      ffn_out = self.ffn(hidden)
      ffn_out = self.dropout(ffn_out)
      hidden = ffn_out + hidden
      hidden = self.ln2(hidden)
      return hidden, cache
  
imports: from __future__ import division
  from __future__ import absolute_import
  from __future__ import print_function
  from __future__ import unicode_literals
  import logging
  import paddle.fluid.dygraph
  import paddle.fluid
  import paddle.fluid.layers
label_desc: Use image node_id 2 for calling the ErnieBlock obj's underlying member method code with example usage: obj.forward(inputs, attn_bias, past_cache) and returns: hidden,  cache