code: def _calculate_fan_in_and_fan_out(tensor, reverse=False):
      """
      Calculate (fan_in, _fan_out) for tensor
  
      Args:
          tensor (Tensor): paddle.Tensor
          reverse (bool: False): tensor data format order, False by default as [fout, fin, ...]. e.g. : conv.weight [cout, cin, kh, kw] is False; linear.weight [cin, cout] is True
  
      Return:
          Tuple[fan_in, fan_out]
      """
      if tensor.ndim < 2:
          raise ValueError(
              "Fan in and fan out can not be computed for tensor with fewer than 2 dimensions"
          )
  
      if reverse:
          num_input_fmaps, num_output_fmaps = (
              tensor.shape[0],
              tensor.shape[1],
          )
      else:
          num_input_fmaps, num_output_fmaps = (
              tensor.shape[1],
              tensor.shape[0],
          )
  
      receptive_field_size = 1
      if tensor.ndim > 2:
          receptive_field_size = np.prod(tensor.shape[2:])
  
      fan_in = num_input_fmaps * receptive_field_size
      fan_out = num_output_fmaps * receptive_field_size
  
      return fan_in, fan_out
  
imports: import math
  import numpy
  import paddle
  import paddle.nn
label_desc: Use image node_id 10 for calling a global function with example usage: _calculate_fan_in_and_fan_out(tensor, reverse) and returns: fan_in,  fan_out