Can you describe your experience with Torch and how you have used it to implement custom training loops?