Since you can directly access the .data inside your dataset, I would recommend to create the dataset indices manually and just split these indices e.g. using sklearn.model_selection.train_test_split.
Once you have the training and validation indices, you could pass the original dataset together with the corresponding indices to a Subset.
The statistics should then be calculated using the training subset and by indexing the subset.dataset.data with the training indices.
Let me know, if this would work for you.