Metadata-Version: 2.1
Name: length_hpi
Version: 0.0.1
Summary: A small framework for teaching students about basics of neural networks
Home-page: https://github.com/HPI-DeepLearning/length
Author: Christian Bartz, Joseph Bethe
Author-email: christian.bartz@hpi.de
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: Intended Audience :: Education
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE

['# LENGTH - Lightning-fast Extensible Neural-network Guarding The HPI\n', '\n', '![logo](logo.gif)\n', '\n', 'A simple neural network implementation that could be used for education.\n', 'But beware! Some important parts of the code are missing :wink: and you\n', 'have to fill the blanks!\n', '\n', '# Installation\n', '\n', '1. Make sure to install `Python 3` on your device\n', '  - Windows: Get it [here](https://www.python.org/downloads/windows/)\n', '  - Mac: Get it [here](https://www.python.org/downloads/mac-osx/) or use\n', '  your favourite package manager\n', '  - Linux: Use your favourite package manager i.e. `pacman -S python` or\n', '  `apt install python3`\n', '2. Create a virtualenvironment\n', '  - you can do so with `python3 -m venv <path to virtualenv>`\n', '  - If you are using Linux, we recommend that you install\n', '  [virtualenvwrapper](https://virtualenvwrapper.readthedocs.io/en/latest/)\n', '  and organize all virtualenvironments with this tool, its quite neat.\n', '3. Load the virtualenvironment\n', '4. Clone the repository\n', '4. Install all necessary libraries with `pip install -r requirements.txt`\n', '\n', '\n', '# Structure of the Repository\n', '\n', 'You can find all neural network specific code in the directory `length`.\n', 'Follows is a list of all directories and their respective content:\n', '- `data_sets` contains code that is necessary for dealing with specific\n', 'datasets like `MNIST` or `FashionMNIST`. Those implementations shall\n', 'follow the interface specification in `length/data_set.py`.\n', '- `functions` contains code for all neural network functions that do not\n', 'have any parameters that need to be updated. All those functions follow\n', 'the interface specified in `length/function.py`.\n', '- `initializers` contains code for weight initializers that follow the\n', 'initializer interface specified in `length/initializer.py`.\n', '- `layers` contains code for all implemented neural network layers.\n', 'Those layers follow the interface specification in `length/layer.py`. A\n', 'layer is a neural network function that has internal parameters, which\n', 'need to be updated.\n', '- `models` contains code for sample models that come with this library\n', 'and can be trained out of the box.\n', '- `optimizers` contains the implementation of all neural network\n', 'optimizers. Those implementations follow the interface, specified in\n', '`length/optimizer.py`.\n', '- `tests` contains tests for the library, that use `py.test` as testing\n', 'framework.\n', '\n', 'The file `train.py` in the root directory contains sample code for\n', 'training a neural network with this library.\n', '\n', '# Training\n', '\n', 'You can start a train run, using the sample train script, by entering\n', 'the following command from the root directory of the repository:\n', '`python train.py`. If you want to know more about possible command-line\n', 'arguments, type `python train.py -h`.\n', '\n', '\n', '# Principles of this library\n', '\n', 'This library follows the design principles of\n', '[Chainer](https://chainer.org/) in a very rudimentary way. This library\n', 'implements a dynamic computational graph that can be used to easily\n', 'prototype, design, and debug neural networks. It furthermore allows for\n', 'the design of dynamic neural networks that change at every iteration,\n', 'making such an approach suitable for recurrent neural networks.\n', '\n', 'A word of *WARNING*: If you ever feel tempted to use this library for\n', "training a real neural network and not just a toy example: **don't**! Use a\n", 'library like Chainer that is more mature and also supports GPUs. The\n', 'transition from this library to Chainer should not be that difficult, as\n', 'the same principles are used here and in Chainer.\n', '\n', '# Contributions\n', '\n', 'Contributions in every form are welcome. If you think, that you nicely\n', 'implemented a new layer, we are happy to see your contribution in form\n', 'of a pull request!\n', '\n', '# One Last Thing\n', '\n', '**Remember:** Do not use this library for training a real network.\n', 'This library is only intended to be used for education and not for real\n', 'prototyping.\n']

