Generalized Framework for PyTorch

Welcome to PyTorchNet!

**PyTorchNet** is a Machine Learning framework that is built on top of PyTorch. And, it uses Visdom and Plotly for visualization.

PyTorchNet is easy to be customized by creating the necessary classes:

  1. Data Loading: a dataset class is required to load the data.
  2. Model Design: a nn.Module class that represents the network model.
  3. Loss Method: an appropriate class for the loss, for example CrossEntropyLoss or MSELoss.
  4. Evaluation Metric: a class to measure the accuracy of the results.


PyTorchNet consists of the following packages:


This is for loading and transforming datasets.


Network models are kept in this package. It already includes ResNet, PreActResNet, Stacked Hourglass and SphereFace.


There are number of different choices available for Classification or Regression. New loss methods can be put here.


There are number of different choices available for Classification or Regression. New accuracy metrics can be put here.


There are already three different plugins available:

  1. Monitor:
  2. Logger:
  3. Visualizer:


    • main
    • dataloader
    • train
    • test


First, you need to download PyTorchNet by calling the following command:

git clone –recursive

Since PyTorchNet relies on several Python packages, you need to make sure that the requirements exist by executing the following command in the pytorchnet directory:

pip install -r requirements.txt


  • If you do not have Pytorch or it does not meet the requirements, please follow the instruction on the Pytorch website.

Congratulations!!! You are now ready to use PyTorchNet!


Before running PyTorchNet, Visdom must be up and running. This can be done by:

python -m visdom.server -p 8097

screenshot from 2018-02-24 19-10-44

PyTorchNet comes with a classification example in which a ResNet model is trained for the CIFAR10 dataset.


screenshot from 2018-02-24 18-53-13

screenshot from 2018-02-24 18-58-03


PyTorchNet loads its parameters at the beginning via a config file and/or the command line.

Config file

When PyTorchNet is being run, it will automatically load all parameters from args.txt by default, if it exists. In order to load a custom config file, the following parameter can be used:

python –config custom_args.txt



port = 8097\ env = main\ same_env = Yes\ log_type = traditional\ save_results = No\ \ # dataset options\ dataroot = ./data\ dataset_train = CIFAR10\ dataset_test = CIFAR10\ batch_size = 64

Command line

Parameters can also be set in the command line when invoking These parameters will precede the existing parameters in the configuration file.

python –log-type progressbar