code: def predict_with_onnx(self, x, mc=False, dirname=None, batch_size=32):
      # reshape 1dim input
      x = self._reshape_input(x)
  
      if not self.onnx_model_built:
          x_torch_tensor = PytorchBaseModel.to_torch(x[0:1]).float()
          self._build_onnx(x_torch_tensor, dirname=dirname)
  
      yhat_list = []
      sample_num = x.shape[0]
      batch_num = math.ceil(sample_num / batch_size)
  
      for batch_id in range(batch_num):
          ort_inputs = {
              self.ort_session.get_inputs()[0].name: x[
                  batch_id * batch_size : (batch_id + 1) * batch_size
              ]
          }
          ort_outs = self.ort_session.run(None, ort_inputs)
          yhat_list.append(ort_outs[0])
  
      yhat = np.concatenate(yhat_list, axis=0)
  
      return yhat
  
imports: import torch
  from torch.utils.data import TensorDataset, DataLoader
  import types
  import numpy
  import math
  import pandas
  import tempfile
  import os
  from zoo.orca.automl.model.abstract import BaseModel, ModelBuilder
  from zoo.orca.automl.metrics import Evaluator
  from zoo.orca.automl.pytorch_utils import LR_NAME, DEFAULT_LR
label_desc: Use image node_id 23 for calling the PytorchBaseModel obj's underlying member method code with example usage: obj.predict_with_onnx(x, mc, dirname, batch_size) and returns: yhat