I just started learning PyTorch after using Keras exclusively for a couple of years. I really like how models in Keras are trained, and having nice qol features like model checking and early stopping. I was wondering if there’s a way to implement each of the following in PyTorch


Reserving a portion of the training data as validation data so that the model predicts on the validation data at each epoch. Additionally, is there a way to randomize what data is put into the validation set


Callbacks like early stopping, snapshot ensembling, and model checking


Also in the tutorial on training a classifier (https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html 7) and several other PyTorch implementations of nn architectures, there typically isn’t an activation at the end (i.e. sigmoid/softmax). Why is this the case? Is the activation function not needed at the end?