parameters: (cls, op, X, W)
return_statement: return tensor_list
docstring: hanlde the special operators
          Args:
              op: a given operator
          Args:
              op_t: the tensor of the operator
          Returns: 
              onnx tensor list
docstring_summary: hanlde the special operators
          Args:
              op: a given operator
          Args:
              op_t: the tensor of the operator
          Returns: 
              onnx tensor list
docstring_tokens: hanlde the special operators Args : op : a given operator Args : op_t : the tensor of the operator Returns : onnx tensor list
function: def _special_handle_batchnorm(cls, op, X, W):
          """
          hanlde the special operators
          Args:
              op: a given operator
          Args:
              op_t: the tensor of the operator
          Returns: 
              onnx tensor list
          """
          # for singa, x, scale, bias is input
          # and mean and var is attribute
          # so we add the mean and var to W
          tensor_list = []
          append_inputs = {"mean": op.running_mean, "var": op.running_var}
          for tmp_name, append_input in append_inputs.items():
              node_name = op.name + ":" + tmp_name
              append_input = tensor.to_numpy(tensor.from_raw_tensor(append_input))
              tensor_list.append(numpy_helper.from_array(append_input, node_name))
          return tensor_list
function_tokens: def _special_handle_batchnorm ( cls , op , X , W ) : # for singa, x, scale, bias is input # and mean and var is attribute # so we add the mean and var to W tensor_list = [ ] append_inputs = { "mean" : op . running_mean , "var" : op . running_var } for tmp_name , append_input in append_inputs . items ( ) : node_name = op . name + ":" + tmp_name append_input = tensor . to_numpy ( tensor . from_raw_tensor ( append_input ) ) tensor_list . append ( numpy_helper . from_array ( append_input , node_name ) ) return tensor_list