code: def get_local_variable_or_declare_one(self, raw_name, type=None):
          '''
          This function will first check if raw_name has been used to create some variables. If yes, the latest one
          named in self.variable_name_mapping[raw_name] will be returned. Otherwise, a new variable will be created and
          then returned.
          '''
          onnx_name = self.get_onnx_variable_name(raw_name)
          if onnx_name in self.variables:
              return self.variables[onnx_name]
          else:
              variable = Variable(raw_name, onnx_name, self.name, type)
              self.variables[onnx_name] = variable
              if raw_name in self.variable_name_mapping:
                  self.variable_name_mapping[raw_name].append(onnx_name)
              else:
                  self.variable_name_mapping[raw_name] = [onnx_name]
              return variablf get_local_variable_or_declare_one(self, raw_name, type=None):
          '''
          This function will first check if raw_name has been used to create some variables. If yes, the latest one
          named in self.variable_name_mapping[raw_name] will be returned. Otherwise, a new variable will be created and
          then returned.
          '''
          onnx_name = self.get_onnx_variable_name(raw_name)
          if onnx_name in self.variables:
              return self.variables[onnx_name]
          else:
              variable = Variable(raw_name, onnx_name, self.name, type)
              self.variables[onnx_name] = variable
              if raw_name in self.variable_name_mapping:
                  self.variable_name_mapping[raw_name].append(onnx_name)
              else:
                  self.variable_name_mapping[raw_name] = [onnx_name]
              return variable
docs: This function will first check if raw_name has been used to create some variables. If yes, the latest one
          named in self.variable_name_mapping[raw_name] will be returned. Otherwise, a new variable will be created and
          then returned.