A Simple Tool to Train and Test Neural Networks - neural-network

I’m looking a simple tool to train and test neural networks for classification tasks. It need not be very sophisticated tool and I just want to train and test simple data sets such as given in the following web site.
http://www.stats.ox.ac.uk/pub/PRNN/

It's not a pre-made utility, but you could roll your own quite quickly using the Encog neural network framework (for both Java and .NET).
I've used it before and it was quite easy to get to grips with. The documentation is quite good, and if you need it, I've also found support on the forums to be good.
* UPDATE *
I just remembered that Encog does actually ship with a pre-made utility called Encog Workbench, which should do what you want.

Related

Looking for advise to create my first neural network to classify text

I am very new in this field and I would like to create a Neural Network to classify a dataset that I have in MongoDB. I would like some advise about where should I start, what technology should I use or any tutorial that you think it can help.
If you know about any open source code that already does this, I would love to take a look at it.
Thank you !!
Pick a platform
In essence, you should pick a platform or framework that does much of the dirty work for you and read up on some tutorials for that.
The big choice is between natural language processing frameworks such as NLTK or spaCy or Stanford NLP tools; or a generic machine learning framework such as Tensorflow or PyTorch.
Text classification is a popular task that's reasonably entry-level, is well supported by pretty much everything (so it's not much to say there in a shopping question, pick whatever you like) and would have a bunch of tutorials available online for any major platform.

loading and using a pre-trained neural network from any platform

I am building a code and trying to keep things as generic as possible. I have seen a number of tutorials and post but they are all platform specific (tensorflow\pytorch).
Is there a good way to load and use a previously trained neural network model in a manner that the code will be able to cope with both torch and tensorflow? Does it matter in which version of tensorflow\torch the network was built in? I want the code to be as generic as possible.
Also, do I need to know the structure of the original network or can I load it and use it without the notion of the structure?
I don't think it is possible to write a program that can load pre-trained models from both Torch and Tensorflow as they save in different formats.
You might want to look into the Open Neural Network Exchange Format (https://onnx.ai/) if you are creating the models yourself, this is an initiative backed by Amazon, Facebook, Microsoft, and others to create a portable file format for deep learning models.

what is the typical size of pre-trained image classification model size

I have a few general questions regarding using pre-trained image classification models in mobile.
How big is a typical pre-trained model?
If it is too big for mobile, what is the best strategy from there?
I checked out the documentation of DeepLearning for Java, anywhere to download pre-trained model?
Thanks in advance.
It's really task dependent. I mean..you can't just say given an unknown problem what is an arbitrary size of neural net.
In general, if you're doing vision expect to be hundreds of megs, but a lot of it comes down tot he activation sizes. I would advise just doing some benchmarking overall. You can't really just handwave that.
A lot of the pretrained models are for computer vision only. They are based on keras. You shouldn't "download" them yourself. No framework works like that.
We have a managed module for that in the model zoo you should use instead.

easiest tool to use for a extreme beginner for classification/clustering

I saw that the tool weka is having a gui interface. This gui interface is very easy for non coding users to classify data sets into classes. Matlab is very difficult since say for example making a neural network you need to write code and to do that you need to have a solid understanding of whats going on. Are there other tools like weka or else is there a plugin to matlab that gives more power to it?
RapidMiner has a functional GUI, and will work for both classification and clustering. It is the most popular open-source (free) data mining application available as of 2012.
RapidMiner: http://rapid-i.com/
It also has numerous training videos and tutorials that you can follow along with - I learned basic clustering methods using a K-means cluster method in about 3 hours. See the Vancouver Data blog for some great RapidMiner analytics videos. Top-notch stuff, really.
Vancouver Data (Neil McGuigan): http://vancouverdata.blogspot.com/
As a bonus, you can install the Weka plug-in, which then gives you GUI Weka. All of the add-ons are free and well-integrated. Other add-ons include a GUI 'R' (the stats program), Reporting Services, Text and Web Analytics, etc. It is fairly simple to use straight 'out of the box' (IMO).
Weka is very (very) powerful and you can write your own classifier if that's what you need to do.
Between Matlab and Weka there's pretty much nothing you can't do in terms of Machine Learning.
You might want to check out Netlab toolkit for Matlab, which is a neural network toolkit developed by a Professor at Aston University - it is available from http://www1.aston.ac.uk/eas/research/groups/ncrg/resources/netlab/

consultation about ANN libraries

Firstly, I am a beginner in artificial neural networks and I need a special library for training the artificial neural networks, but I very confused in the selection of the library, and since I didn't have the experience I wanted to consult you.
I have read about three libraries:
FANN, Flood, and Neuro Fusion libraries.
So, what are you think about the easiest and Least problems library for using it with VC++.6?
I just started using FANN, and it seems to be very well documented, with great examples and fast.
It operates with floats/doubles/integers and implements the Cascade2 training method, which is really great if you are unsure about the architecture of your NN.
It is not as rich as Encog (didn't use it), but if FANN implements all the functionalities you need, I think you should go with it.
Edit: I just realized that Encog is only available for .NET C# (besides Java)