Build neural networks in 1 line
Project description
nn_builder builds neural networks in 1 line to save you time :clock1:. You specify the type of network you want and it builds it.
Install
pip install nn_builder
Support
Network Type | NN | CNN | RNN |
---|---|---|---|
PyTorch | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
TensorFlow 2.0 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
Examples
On the left is how you can create the neural network on the right in only 1 line of code using nn_builder:
Tensorflow example...
See this colab notebook for demonstrations of how to use this module.
Usage
Every network requires the same arguments:
Field | Description | Default |
---|---|---|
input_dim | Dimension of the input into the network excluding the batch size. Not needed for Tensorflow. | N/A |
layers_info | List of integers to indicate the width and number of linear layers you want in your network | N/A |
output_activation | String to indicate the activation function you want the output to go through. Provide a list of strings if you want multiple output heads | No activation |
hidden_activations | String or list of string to indicate the activations you want used on the output of hidden layers (not including the output layer), default is ReLU and for example "tanh" would have tanh applied on all hidden layer activations | ReLU after every hidden layer |
dropout | Float to indicate what dropout probability you want applied after each hidden layer | 0 |
initialiser | String to indicate which initialiser you want used to initialise all the parameters | PyTorch Default |
batch_norm | Boolean to indicate whether you want batch norm applied to the output of every hidden layer | False |
columns of_data_to_be_embedded | List to indicate the column numbers of the data that you want to be put through an embedding layer before being fed through the hidden layers of the network | No embeddings |
embedding_dimensions | If you have categorical variables you want embedded before flowing through the network then you specify the embedding dimensions here with a list of the form: [ [embedding_input_dim_1, embedding_output_dim_1], [embedding_input_dim_2, embedding_output_dim_2] ...] | No embeddings |
y_range | Tuple of float or integers of the form (y_lower, y_upper) indicating the range you want to restrict the output values to in regression tasks | No range |
random_seed | Integer to indicate the random seed you want to use | 0 |
print_model_summary | Boolean to indicate whether you want a model summary printed after model is created | False |
After creating a model, the function print_model_summary() can be used to summarise the layers.
More Examples
Contributing
Anyone is very welcome to contribute via a pull request. Please see the Issues page for ideas on the best areas to contribute to and try to:
- Add tests to the tests folder that cover any code you write
- Write comments for every function
- Create a colab notebook demonstrating how any extra functionality you created works
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for nn_builder-0.0.10-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 289b6c21ac74165ba70c6c405af5c9f9b1725c206ba3e929a172b1e6b9c0dc2a |
|
MD5 | 03107eca5ac17ce6dc79d956e3c38414 |
|
BLAKE2b-256 | c15672b6e1388e841f0e1957da55fa05cffdbf67b1482d84240a8f3ab819cf58 |