Retrieving multiple inputs / targets from data loader

Is there a way to return multiple values instead of two?
In the example below, I can only return 1 input and 1 target.

torch::data::Example<> KittiSet ::get(size_t index) {
  auto sample = data[index];
  // Get Images
  auto cv_img = cv::imread(sample["image"]);
  auto image = CVtoTensor(cv_img, WIDTH, HEIGHT);
  auto cv_depth = cv::imread(sample["depth"]);
  auto depth = CVtoTensor(cv_depth, WIDTH, HEIGHT);
  // Get Cam and Pose
  auto cam_data = txtToTensor(sample["cam"]);
  auto cam = torch::from_blob(cam_data.data(), {3, 3});
  auto pose_data = txtToTensor(sample["pose"]);
  auto len = (int)pose_data.size() / 12;
  auto pose = torch::from_blob(pose_data.data(), {len, 3, 4});

  return {image, depth};
}

Instead I would like to return 3 inputs and 1 target.
In sum, I would like to return all the data instead of just a single input and target.
Does anyone know how I can achieve this?

  return {image,cam, pose depth}

Code: slam/dataset.h at main · alantess/slam · GitHub