Your Dataset returns currently two tuples, so basically 4 values.
If you write the return statement as
return img_as_tensor, image_class, keypoints_as_tensor, img_name

you could simply get these values for each batch in your training loop:
for i, (img_data, target, kp_data, img_name) in enumerate(train_loader, 0):
    ...

and pass the tensors to the corresponding layers.