Activation function for Output Layer in Regression, Binary, Multi-Class, and Multi-Label Classification
The ReLU activation function is a default choice for the hidden layers. For the output layer, in general, you will want the logistics activation function for binary classification, the softmax activation function for multiclass classification, and no activation function for regression.
Adam optimizer with learning rate weight decay using AdamW in keras
Common deep learning libraries only implement L2 regularization, not the original weight decay. Therefore, on datasets where the use of L2 regularization is beneficial for SGD on many popular image classification datasets, Adam leads to worse results than SGD with momentum for which L2 regularization behaves as expected.
Split data set into Train and Test set Using Keras image_dataset_from_directory/folder.
Fraction of the training data to be used as validation data. The Keras will set apart this fraction of the training data. The validation data is selected from the last samples in the x and y data provided.
Split Imbalanced dataset using sklearn Stratified train_test_split().
Stratified train_test_split to maintain the imbalance so that the test and train dataset have the same distribution, then never touch the test set again. Stratified ensure that each dataset split has the same proportion of observations with a given label.
Split Custom PyTorch DataSet into Training, Testing and Validation set using random_split
Shuffle the list before splitting else you won’t get all the classes in the three splits since these indices would be used by the Subset class to sample from the original dataset. Shuffling the elements of a tensor amounts to finding a permutation of its indices. The random_split function does exactly this:
PyTorch:Difference between “tensor.detach()” vs “with torch.nograd()”
It’s quite a bit faster due to the with torch.no_grad() context manager explicitly informing PyTorch that no gradients need to be computed. Context managers like with torch.no_grad(): can be used to control auto-grad’s behavior.
PyTorch: What does model.train()?
When the user specifies model.eval() and the model contains a batch normalization module, the running estimates are frozen and used for normalization. To unfreeze running estimates and return to using the minibatch statistics, we call model.train(), just as we did for dropout.
How to save and load PyTorch Tensor to file?
We can save tensors quickly this way but if we want to load them with the file format itself is not interoperable. We can’t read the tensor with software other than PyTorch. Depending on the use case, this may or may not be a limitation, but we should learn how to save tensors interoperably.