Image Classification - Jupyter Notebook

The example image_classification_CIFAR10.ipynb demonstrates integrating Trains into a Jupyter Notebook which uses PyTorch, TensorBoard, and TorchVision to train a neural network on the UrbanSound8K dataset for image classification. Trains automatically logs the example script's calls to TensorBoard methods in training and testing which report scalars and image debug samples, as well as the model and console log. In the example, we also demonstrate connecting parameters to a Task and logging them. When the script runs, it creates an experiment named image_classification_CIFAR10 which is associated with the Image Example project.

Another example optimizes the hyperparameters for this image classification example (see the Hyperparameter Optimization - Jupyter Notebook documentation page). This image classification example must run before the hyperparameter optimization example.

Scalars

The accuracy, accuracy per class, and training loss scalars are automatically logged, along with the resource utilization plots (titled :monitor: machine), and appear in the Trains Web (UI), RESULTS tab, SCALARS sub-tab.

Debug samples

The image samples are automatically logged and appear in the RESULTS tab, DEBUG SAMPLES sub-tab.

By doubling clicking a thumbnail, you can view a spectrogram plot in the image viewer.

Hyperparameters

The example connects a parameter dictionary to the Task. These parameters, as well as the TensorFlow DEFINEs, are automatically logged, and appear in the HYPER PARAMETERS tab.

configuration_dict = {'number_of_epochs': 3, 'batch_size': 4, 'dropout': 0.25, 'base_lr': 0.001}
configuration_dict = task.connect(configuration_dict)  # enabling configuration override by trains

Log

Text printed to the console for training progress, as well as all other console output, appear in the RESULTS tab, LOG tab.