NeuralNet - lucadellasantina/ObjectFinder GitHub Wiki
ObjectFinder allows you to train a custom deep-learning neural network model in order to automate the process of object validation.
In order to do so, you need first to create a training dataset with previously analysed experiments, in which the validity of objects was carefully evaluated by an expert.
Neural Networks (top panel)
- Create Network will create a new neural network from the Target/NetType/Net Model selected.
- Delete Network: deletes the selected network from the list. This action is permanent.
- Duplicate Network: creates a copy of the network selected from the list
- Network Information: Displays the structure of the selected network with detailed information on each layer
- Rename Network: Assigns a new name to the network selected from the list
- Export Network: Saves network to the specified location. The network file will be names {Unique-ID}.mat and can be shared with others / attached as supplementary data to the publication.
- Import Network: Imports a network saved with export network from selected file into the local list.
Projects to use as training data (middle panel)
Here you can add and manage which projects to use as training data for the selected network:
- Add project: Add a single project to the list by selecting its folder from disk
- Add all projects within home folder: Adds all subbfolders of selected home folder as projects to be used as training data
- Remove project: Removes selected project from the list of training. This actions does NOT delete the project from disk.
- Clear projects: Removes all the projects from the list. This action does NOT delete projects from disk.
- Reorder projects: Green buttons reorders selected project in the list by moving it up or down in order of use.
- Objects: Defines which objects to use to train the neural net, select "Use all available objects sets" to use all found objects instead of a speficic name.
Training Settings
This section allows you to define custom settings for the training of the selected neural net:
- Training/Testing ratio: Defines the fraction of objects to be used for training vs validation of the model (default = 70%)
- Learning Rage: Defines the rate at which the neural network learns during the training process (default = 10e-2)
- Momentum: Defines how much of the information learned from the previous epoch should be retained during the current epoch (default = 90%)
- Shuffle training data: Decide how many times the training data should be shuffled (default = once)
- Augment training data: increases the training dataset by scaling/rotating/flipping each object
- Mini Batch Size: Defines the size of each mini batch loaded onto the GPU for computation. Lower this parameter if your GPU runs out of memory during the training process.
- Max Epochs: Maximum number of epochs that the training process should reach before completion.
- Execution Environment: Allows you to train the network over a single GPU, multiple GPUs or CPU (default = auto)
Training buttons (bottom button bar)
- Generate Training Set: Generates a complete training/validation set from the selected projects listed in the middle panel. Please make sure you have enough space in the selected drive as many images will be created corresponding to each object.
- Train Network: Starts the training of the network selected from the top panel. You'll be asked to selected the location of the training set generated in the previous step and then a progress plot will be displayed to monitor the training.
- Test Network: Tests the trained network selected from the top panel against a specific project. Validation status of the objects predicted by the neural net will be compared to the validation status of the objects in the project.
-
Training a neural network requires a video card supporting CUDA architecture and the Deep Learning Toolbox.
-
Support for the Network model you want to use for training needs to be installed using MATLAB's AddOn manager, for example to install support for AlexNet models, start the AddOn manager and search for "AlexNet network model" and install that particular addon. This is a one-time operation.