code: def resolve_broadcast_params(inputs, function_proto, batch_size):
      '''Resolve shape parameter and returns shape.
      '''
      f = function_proto  # alias
  
      # A. Detect multiple negative dimensions (not allowed).
      negative_count = 0
      for d in f.broadcast_param.shape.dim:
          if d < 0:
              negative_count += 1
      if negative_count > 1:
          raise ValueError('Reshape: shape has multiple negative number.')
  
      # B. Fill negative dimensions with batch size.
      shape = tuple(
          [d if d >= 0 else batch_size for d in f.broadcast_param.shape.dim])
      return shapf resolve_broadcast_params(inputs, function_proto, batch_size):
      '''Resolve shape parameter and returns shape.
      '''
      f = function_proto  # alias
  
      # A. Detect multiple negative dimensions (not allowed).
      negative_count = 0
      for d in f.broadcast_param.shape.dim:
          if d < 0:
              negative_count += 1
      if negative_count > 1:
          raise ValueError('Reshape: shape has multiple negative number.')
  
      # B. Fill negative dimensions with batch size.
      shape = tuple(
          [d if d >= 0 else batch_size for d in f.broadcast_param.shape.dim])
      return shape
docs: Resolve shape parameter and returns shape.