This repository contains the software to train and evaluate Convolutional Neural Networks (CNNs) for neutrino event characterisation (cosmic muon rejection, beam neutrino classification, neutrino energy estimation) within water Cherenkov detectors, specifically for CHIPS R&D project detectors. For a detailed description of the implementation see link. We use the Tensorflow framework as the backend and employ multiple GPUs for training and inference.
The "environment.yaml" file contains the required Conda environment definition. Additionally, CUDA version 10.1 is required. To ensure that this version is used and the environment is installed correctly, we provide a bash script that can be used as follows:
source setup.sh
Once this is complete, you can source the same script again in the future to activate the environment.
The default configurations for creating data, running training, and performing SHERPA hyperparameter optimisation studies are located in ./chipsnet/config/ these will need to be modified for your setup.
To create the training data (.tfrecords) files from the simulation 'map' files run:
make create
To train a beam neutrino classification model run:
make train_beam
To train a beam neutrino energy estimation regression model run:
make train_energy
To run a SHERPA hyperparameter optimisation study run:
make study
To run any task with a given configuration use the following:
python chipsnet/run.py [config_path]
To run all the tests call:
make test
To use the analysis results notebook in ./analysis/ run the following and navigate to the url given.
You will need to forward the port to your local machine if working remotely.
jupyter-lab
- It's important to first copy data to the local GPU machine or the training rate is reduced significantly due to the networking bottleneck.