code: def two_linear_inference(xin):
      """
      Make a bi-linear block with optional residual connection
  
      Args
          xin: the batch that enters the block
      y: the batch after it leaves the block
      """
  
      output_size = IN_JOINTS * F
  
      # Linear 1
      output = Dense(n_units=output_size, act=None)(xin)
      output = batch_normalization_warp(output)
      # output = Dropout(keep=0.8)(output)
  
      # Linear 2
      output = Dense(n_units=output_size, act=None)(output)
      output = batch_normalization_warp(output)
      # output = Dropout(keep=0.8)(output)
  
      # Residual every 2 blocks
      y = Elementwise(tf.add)([xin, output])
  
      return y
  
imports: import numpy
  import tensorflow
  from tensorlayer.layers import Layer, Dropout, Dense, Input, BatchNorm, Reshape, Elementwise
  from tensorlayer.models import Model
  from tensorlayer import logging
  from .common import mask_weight, neighbour_matrix
label_desc: Use image node_id 4 for calling a global function with example usage: two_linear_inference(xin) and returns: y