Skip to content

ageek/theano-nets

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

theano-nets

This package contains implementations of several common neural network structures, using the amazing Theano package for optimization.

Installation

Install the latest published code using pip:

pip install theanets

Or download the current source and run it from there:

git clone http://github.com/lmjohns3/theano-nets
cd theano-nets
python setup.py develop

Getting started

There are a few examples in the examples/ directory. Run an example with the --help flag to get a list of all the command-line arguments ; there are many of them, but some of the notable ones are :

-n or --layers N1 N2 N3 N4

Build a network with N1 inputs, two hidden layers with N2 and N3 units, and N4 outputs. (Note that this argument is held constant in the example code, since it needs to correspond to the shape of the data being processed.)

-g or --activation logistic|relu|linear|norm:mean+logistic|...

Use the given activation function for hidden layer units. (All output layer units have a linear activation function.) Several activation functions can be pipelined together using +.

-O or --optimize sgd|hf|sgd hf|layerwise hf|...

Use the given optimization method(s) to train network parameters. Several training methods can be used in sequence by separating their names with spaces on the command line.

Using the library

Probably the easiest way to start with the library is to copy one of the examples and modify it to perform your tasks. The usual workflow involves instantiating theanets.Experiment with a subclass of theanets.Network, then adding some data by calling add_dataset(...), and finally calling train() to learn a good set of parameters for your data:

exp = theanets.Experiment(theanets.Classifier)
exp.add_dataset('train', my_dataset[:1000])
exp.add_dataset('valid', my_dataset[1000:])
exp.train()

You can save() the trained model to a pickle, or use the trained network directly to predict() the outputs on a new dataset:

print(exp.network.predict(new_dataset))
exp.save('network-pickle.pkl.gz')

The documentation is relatively sparse, so please file bugs if you find that there's a particularly hard-to-understand area in the code.

License

MIT License.

About

neural networks in theano

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published