SymNet is a deep learning pipeline with a focus on simplicity. Functionality is available through command-line options or as an API. The focus is on simplicity and getting quick results.
The symnet.py
file shows how to use the API for multi-class classification
on a tabular (CSV) dataset. Start by creating a model:
model = NumericModel(csv_path, n_classes=3, label_column='target', task='classification')
Then, you can call fit
and predict
on the model, or find the loss and accuracy using
the score
method.
Image classifiers inherit from AbstractImageClassificationModel
. Currently,
only ResNet is implemented. See symnet.py
for example usage. Like
all models, you can call fit
, predict
, and score
.
You can use the symnet.py
file to run classification on a tabular dataset. The available options are:
--task
: One of'classification'
and'regression'
--dataset
: The CSV dataset.--data-type
: As of now, only'numeric'
and'image'
are supported.--labels
: The CSV column with labels--num-classes
: Number of classes (for classification)--activation
: The activation to use. Any of('relu', 'elu', 'selu', 'sigmoid', 'softmax', 'linear', 'sbaf', 'arelu', 'softplus)
--no-header
: Indicates that the CSV does not have a header row--batch-size
: The batch size to use--train-split
: The training data subset split size--epochs
: The number of epochs--no-balance
: Do not rebalance classes in classification problems--no-augment
: For image datasets, do not augment the data
The Dockerfile in symnet-docker
sets up a minimal Debian Stretch system with Python 3.7 and
required packages installed. Run it with
docker run -it -v [host-src:]/symnet symnet /bin/bash
This starts up an interactive terminal, mounts a volume at /symnet
in the container,
and runs a Bash shell. You can change the command run in the
last argument.
- Add DenseNet architecture
- Add support for text datasets
- Add support for image segmentation tasks
- Resize and normalize images
- For images, use LipschitzLR scheduler
SymNet uses the LipschitzLR learning rate policy: arXiv:1902.07399
BibTeX entry:
@article{yedida2019novel,
title={A novel adaptive learning rate scheduler for deep neural networks},
author={Yedida, Rahul and Saha, Snehanshu},
journal={arXiv preprint arXiv:1902.07399},
year={2019}
}
SymNet also implements the SBAF and A-ReLU activation functions: arXiv:1906.01975. If you use these, please cite:
@article{saha2019evolution,
title={Evolution of Novel Activation Functions in Neural Network Training with Applications to Classification of Exoplanets},
author={Saha, Snehanshu and Nagaraj, Nithin and Mathur, Archana and Yedida, Rahul},
journal={arXiv preprint arXiv:1906.01975},
year={2019}
}