NeuLab 4+

A neural network laboratory

Tim Dyes

Designed for iPad

    • 3.6 • 5 Ratings
    • Free



NeuLab is a complete laboratory for learning about neural networks through hands on usage.
* Each screen has a Help button to give usage help for all controls on that screen.
* Configure, train, test, and optimize your network.
* Use AutoPrune to increase network accuracy.
* Use Prune and Link to build convolution layers.
* Define the input-output examples used for training and testing. Use NeuLab's built in editor or define these externally for import.
* Save and export your trained networks for study and reuse.
* Save and export your training data and test results.
* Step the network training to see how internal weights change with each presentation of training data.
* Step the network testing to see how internal nodes activate in response to the inputs and produce the network outputs.

Background: Neural networks process data via highly interconnected layers of simple processing nodes. These networks are being employed across all areas of pattern recognition and classification: handwritten character recognition, voice recognition, face detection/recognition, image classification, biometric security, credit risk assessment, financial markets analysis, sports analysis, language processing, game playing, the list goes on and on. A neural net learns by observation and doesn’t need problem specific rules or algorithms programmed in. The key factors for success are the network architecture, the training parameters, and most importantly the training data representation and the data examples themselves.

NeuLab is primarily an educational app to give you familiarity with how a neural network operates and to see its inner workings. You configure the network and provide the example data for training and testing the network. Your trained network hopefully will have learned the relationships necessary for good results when presented with your test data. Testing the network is critical to assessing its usefulness on as yet unseen data. Examining the test failures will give you insight into how the network operates, the importance of broad representation in the training data, and the importance of the data representation itself.

NeuLab lets you define a network up to 5 layers deep with up to 100 nodes per layer.

The networks here are feed forward where signals propagate from an Input layer of nodes through one or more hidden layers and finally to an output layer. Each layer is initially fully connected to the next layer (i.e. each node in one layer is connected to every node in the next layer). Each layer includes a bias node also fully connected to the next layer. Non-input nodes use a sigmoid activation function with outputs constrained to 0.0-1.0. Example data values are similarly constrained and should be scaled if needed.

A network is trained by multiple presentations of the training examples. The network learns by adjusting its internal connection weights until the outputs produced are sufficiently close to those given in the training examples. The learning algorithm is gradient descent backpropagation using the generalized delta rule as described in the seminal 1986 PDP books by Rumelhart, McClelland, et al.

You can vary network topology, initialization, training parameters, and the training data to see how training speed and training success is affected.

Once trained, network accuracy can be tested using examples not included in the training set. If test results are not good enough, more experimentation is needed. Perhaps more training data is needed. Perhaps the data representation is a problem. Perhaps pruning will help. Perhaps the input data is missing a key attribute.

You will develop some understanding for how these networks work, to what uses they can be employed, and how to solve training and usage difficulties that may arise.

Please send problems, questions, requests, or comments to me at See the case study and the FAQ there as well.
Enjoy! - Tim Dyes

What’s New

Version 1.6

This app has been updated by Apple to display the Apple Watch app icon.

A few new features for Network configuration.
1. Added a Link button. Link groups connections that they share the same weights. Link also restores any pruned connections involved so that you don't have to restore them separately. During training the weights for each group are updated to the group average. (Hint - use Prune and Link to create convolution layers)
2. Added an Unlink button to remove a linked grouping.
3. Added the Seed button to re-initialize weights to new random values without disturbing the network topology. Pruned weights and linkages are not disturbed (whereas Init clears all linkages and pruning).
4. Updated a few error messages.

Ratings and Reviews

3.6 out of 5
5 Ratings

5 Ratings

SpicyMelon123 ,

Finally An actual working neural network!

I have downloaded about 12 different apps trying to see if there is any app that actually just lets you but in numbers and get back numbers. Simple. But no app allowed it or you had to pay for it... Thank you for making this and making it so simple and sweet.

elite barbs ,

Cool app

Neat features, easy to use and explore, very easy to see what is happening as the network trains itself

ndisjcjjdidjcjidjf ,

I don’t know how to use the app

It is completely impossible to understand what I expect it wasn’t easy to use it

App Privacy

The developer, Tim Dyes, has not provided details about its privacy practices and handling of data to Apple. For more information, see the developer’s privacy policy.

No Details Provided

The developer will be required to provide privacy details when they submit their next app update.

You Might Also Like