{ "info": { "author": "Marius Killinger", "author_email": "Marius.Killinger@mailbox.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Science/Research", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Scientific/Engineering :: Information Analysis" ], "description": ".. image:: https://readthedocs.org/projects/elektronn2/badge/?version=latest\n :target: http://elektronn2.readthedocs.io/en/latest/?badge=latest\n.. image:: https://img.shields.io/pypi/v/elektronn2.svg\n :target: https://pypi.org/project/elektronn2/\n.. image:: https://img.shields.io/conda/vn/conda-forge/elektronn2.svg\n :target: https://github.com/conda-forge/elektronn2-feedstock\n.. image:: https://img.shields.io/conda/pn/conda-forge/elektronn2.svg\n :target: https://anaconda.org/conda-forge/elektronn2\n\n****************\nAbout ELEKTRONN2\n****************\n\n.. contents::\n :local:\n\n\nIntroduction\n============\n\n\nWhat is ELEKTRONN2?\n-------------------\n\nELEKTRONN2 is a flexible and extensible **Python toolkit** that facilitates **design,**\n**training and application of neural networks**.\n\nIt can be used for general machine learning tasks, but its main focus is on\n**convolutional neural networks (CNNs) for high-throughput 3D and 2D image analysis**.\n\nELEKTRONN2 is especially useful for efficiently assessing experimental\nneural network architectures thanks to its **powerful interactive shell** that can be\nentered at any time during training, temporarily pausing all calculations.\n\nThe shell interface provides shortcuts and autocompletions for\nfrequently used operations (e.g. adjusting the learning rate)\nand also provides a complete python shell with full read/write access to the network model, the\nplotting subsystem and all training parameters and hyperparameters.\nChanges made in the shell take effect immediately, so you can **monitor, analyse and**\n**manipulate your training sessions directly during their run time**, without losing\nany training progress.\n\nComputationally expensive calculations are **automatically compiled and transparently**\n**executed as highly-optimized CUDA** binaries on your GPU if a CUDA-compatible\ngraphics card is available [#f1]_.\n\nELEKTRONN2 is written in Python (2.7 / and 3.4+) and is a complete rewrite of the\npreviously published `ELEKTRONN `_ library. The largest\nimprovement is the development of a **functional interface that allows easy creation of**\n**complex data-flow graphs** with loops between arbitrary points in contrast to\nsimple \"chain\"-like models.\nCurrently, the only supported platform is Linux (x86_64).\n\n.. [#f1] You can find out if your graphics card is compatible\n `here `_.\n Usage on systems without CUDA is possible but generally not recommended\n because it is very slow.\n\n.. note::\n ELEKTRONN2 is being superceded by the more flexible, PyTorch-based\n `elektronn3 `_ library. elektronn3\n is actively developed and supported, so we encourage you to use it instead\n of ELEKTRONN2 (if elektronn3's more experimental status and currently less\n extensive documentation are acceptable for you).\n\n\nUse cases\n---------\n\nAlthough other high-level libraries are available (Keras, Lasagne), they all\nlacked desired features_ and flexibility for our work,\nmostly in terms of an intuitive method to specify complicated computational\ngraphs and utilities for training and data handling, especially in the domain\nof specialised large-scale 3-dimensional image data analysis for\n`connectomics `_ research\n(e.g. tracing, mapping and segmenting neurons in in SBEM [#f2]_ data sets).\n\nAlthough the mentioned use cases are ELEKTRONN2's specialty, it can be used and\nextended for a wide range of other tasks thanks to its modular object-oriented\nAPI design_ (for example, new operations can be implemented as subclasses of the\n`Node `_\nclass and seamlessly integrated into neural network models).\n\n.. [#f2] `Serial Block-Face Scanning Electron Microscopy `_,\n a method to generate high resolution 3D images from small samples, such as\n brain tissue.\n\n.. figure:: https://raw.githubusercontent.com/ELEKTRONN/ELEKTRONN2/master/docs/_images/j0126_blend.jpg\n\n Example visualisation of ELEKTRONN2's usage on a 3D SBEM data set\n (blending input to output from left to right).\n\n +--------------------------------------------------+------------------------------------------------------------+\n | Left (input: raw data) | Right (output: predictions by ELEKTRONN2, color-coded) |\n +==================================================+============================================================+\n | 3D electron microscopy images of a zebra finch | Probability of barriers (union of cell boundaries and |\n | brain (area X dataset j0126 by J\u00f6rgen Kornfeld). | extracellular space, marked in **white**) and mitochondria |\n | | (marked in **blue**) predicted by ELEKTRONN2. |\n +--------------------------------------------------+------------------------------------------------------------+\n\n\nInstallation\n------------\n\nSee the installation instructions at\nhttps://elektronn2.readthedocs.io/en/latest/installation.html.\n\n\n.. _design:\n\nDesign principles\n=================\n\nELEKTRONN2 adds another abstraction layer to Theano. To create a model, the\nuser has to connect different types of node objects and thereby builds a graph\nas with Theano. But the creation of the raw Theano graph, composed of symbolic\nvariables and trainable model parameters, is hidden and managed through usage\nof sensible default values and bundling of stereotypical Theano operations into\na single ELEKTRONN2 node.\nFor example, creating a convolution layer consists of initialising weights,\nperforming the convolution, adding the bias, applying the activation function\nand optional operations such as dropout or batch normalisation. Involved\nparameters might be trainable (e.g. convolution weights) or non-trainable but\nchangeable during training (e.g. dropout rates).\n\n\nFeatures\n========\n\n\nOperations\n----------\n\n* Perceptron / fully-connected / dot-product layer, works for arbitrary\n dimensional input\n* Convolution, 1-,2-,3-dimensional\n* Max/Average Pooling, 1,2,3-dimensional\n* UpConv, 1,2,3-dimensional\n* Max Fragment Pooling (MFP), 1,2,3-dimensional\n* Gated Recurrent Unit (GRU) and Long Short Term Memory (LSTM) unit\n* Recurrence / Scan over arbitrary sub-graph: support of multiple inputs\n multiple outputs and feed-back of multiple values per iteration\n* Batch normalisation with automatic accumulation of whole data set statistics\n during training\n* Gaussian noise layer (for Variational Auto Encoders)\n* Activation functions: tanh, sigmoid, relu, prelu, abs, softplus, maxout,\n softmax-layer\n* Local Response Normalisation (LRN), feature-wise or spatially\n* Basic operations such as concatenation, slicing, cropping, or element-wise\n functions\n\n\nLoss functions\n--------------\n\n* Bernoulli / Multinoulli negative log likelihood\n* Gaussian negative log likelihood\n* Squared Deviation Loss, (margin optional)\n* Absolute Deviation Loss, (margin optional)\n* Weighted sum of losses for multi-task training\n\n\nOptimisers\n----------\n\n* Stochastic Gradient Descent (SGD)\n* AdaGrad\n* AdaDelta\n* Adam\n\n\nTrainer\n-------\n\n* Automatic creation of training directory to which all files (parameters,\n log files, previews etc.) will be saved\n* Frequent printing and logging of current state, iteration speed etc.\n* Frequent plotting of monitored states (error samples on training and\n validation data, classification errors and custom monitoring targets)\n* Frequent saving of intermediate parameter states and history of monitored\n variables\n* Frequent preview prediction images for CNN training\n* Customisable schedules for non-trainable meta-parameters (e.g. dropout rates,\n learning rate, momentum)\n* Fully functional python command line during training, usable for\n debugging/inspection (e.g. of inputs, gradient statistics) or for changing\n meta-parameters\n\n\nTraining Examples for CNNs\n--------------------------\n\n* Randomised patch extraction from a list of of input/target image pairs\n* Data augmentation trough histogram distortions, rotation, shear, stretch,\n reflection and perspective distortion\n* Real-time data augmentation through a queue with background threads.\n\n\nUtilities\n---------\n\n* Array interface for `KNOSSOS `_ data sets with\n caching, pre-fetching and support for multiple data sets as channel axis.\n* Viewer for multichannel 3-dimensional image arrays within the Python runtime\n* Function to convert ID images to boundary images\n* Utilities needed for skeltonisation agent training and application\n* Visualisation of the computational graph\n* Class for profiling within loops\n* KD Tree that supports append (realised through mixture of KD-Tree and\n brute-force search and amortised rebuilds)\n* Daemon script for the synchronised start of experiments on several hosts,\n based on resource occupation.\n\n\nDocumentation and usage examples\n================================\n\nThe documentation is hosted at ``_\n(built automatically from the sources in the ``docs/`` subdirectory of the\ncode repository).\n\n\nContributors\n============\n\n* `Marius Killinger `_ (main developer)\n* `Martin Drawitsch `_\n* `Philipp Schubert `_\n\nELEKTRONN2 was funded by `Winfried Denk's lab `_\nat the Max Planck Institute of Neurobiology.\n\n`J\u00f6rgen Kornfeld `_\nwas academic advisor to this project.\n\n\nLicense\n=======\n\nELEKTRONN2 is published under the terms of the GPLv3 license.\nMore details can be found in the `LICENSE.txt\n`_ file.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.elektronn.org/", "keywords": "cnn theano neural network machine learning classification", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "elektronn2", "package_url": "https://pypi.org/project/elektronn2/", "platform": "", "project_url": "https://pypi.org/project/elektronn2/", "project_urls": { "Homepage": "http://www.elektronn.org/" }, "release_url": "https://pypi.org/project/elektronn2/0.6.0/", "requires_dist": [ "numpy (>=1.8)", "scipy (>=0.14)", "matplotlib (>=1.4)", "h5py (>=2.2)", "theano (<0.10,>=0.8)", "future (>=0.15)", "tqdm (>=4.5)", "colorlog (>=2.7)", "prompt-toolkit (<2,>=1.0.3)", "jedi (>=0.9.0)", "pydotplus", "seaborn", "scikit-learn", "psutil (>=5.0.1)", "scikit-image (>=0.12.3)", "numba (>=0.25)", "ipython; extra == 'ipython'", "knossos-utils; extra == 'knossos'" ], "requires_python": "", "summary": "ELEKTRONN2 a is highly configurable toolkit for training 3d/2d CNNs and general Neural Networks", "version": "0.6.0" }, "last_serial": 4034702, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "88c8e0c5bbe280dc3c514be5a7f95aa8", "sha256": "e48f00ab91372615f6bf55ec77fdda019f41169b13f4edd8125b9640bc1092e8" }, "downloads": -1, "filename": "elektronn2-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "88c8e0c5bbe280dc3c514be5a7f95aa8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 324661, "upload_time": "2017-05-28T16:32:16", "url": "https://files.pythonhosted.org/packages/79/66/89d4ab57bc2e3dba9afd83e37326e3085a0cf8e16b063e8abc85164ce9e9/elektronn2-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4659e3ecf3325bf8a2fe4dcca540686f", "sha256": "87484e4ef199144e0959a0574c4340d71800419ce99f24e106d04142bb1e9238" }, "downloads": -1, "filename": "elektronn2-0.1.0.tar.gz", "has_sig": false, "md5_digest": "4659e3ecf3325bf8a2fe4dcca540686f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 297950, "upload_time": "2017-05-28T16:32:19", "url": "https://files.pythonhosted.org/packages/c6/23/7d9127dccdf2a531cb9994e2721c97dc54e4dbd7b15b4b7014a496e2aa57/elektronn2-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "36a10c3f061eece930a394e4fee68ad1", "sha256": "47203f25c8f32d0bba755b018156158c0866bb1aa65f85bdaa5cd66a753ac4d3" }, "downloads": -1, "filename": "elektronn2-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "36a10c3f061eece930a394e4fee68ad1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 323584, "upload_time": "2017-07-10T17:38:09", "url": "https://files.pythonhosted.org/packages/d0/b8/34462d9885f655b8151ea3aa652b97d6560c5405f02cd38959df5fdb349e/elektronn2-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9583c447cfa86999905bf5db6e122b89", "sha256": "f72a758056773789c2f0d5bc36271c980f65ea13eb8c2b4e4d2f8fc42be29c3d" }, "downloads": -1, "filename": "elektronn2-0.2.0.tar.gz", "has_sig": false, "md5_digest": "9583c447cfa86999905bf5db6e122b89", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 299915, "upload_time": "2017-07-10T17:38:12", "url": "https://files.pythonhosted.org/packages/9e/19/1906c42cfce169d9bfbdeacbe9c768b9b604b1bf31328add01ba468727db/elektronn2-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "26ceddb58ab3431f60447a5113360228", "sha256": "9b9f0c5b982e4afbdb373a705aa23637ecadd88b94a593e1e23764c9b39b32ba" }, "downloads": -1, "filename": "elektronn2-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "26ceddb58ab3431f60447a5113360228", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 324170, "upload_time": "2017-07-19T17:50:38", "url": "https://files.pythonhosted.org/packages/70/48/57d42185bc27a41aac937ed1e424d162fc8fa739ea9cc6bfbe146d620add/elektronn2-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0c673902e1564d5a171c0b2bd2becf9f", "sha256": "8179eff1cdd00454aa02db04f8c0a7971f65a616618257e8354bea5ad542a481" }, "downloads": -1, "filename": "elektronn2-0.3.0.tar.gz", "has_sig": false, "md5_digest": "0c673902e1564d5a171c0b2bd2becf9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 300555, "upload_time": "2017-07-19T17:50:40", "url": "https://files.pythonhosted.org/packages/82/eb/0456a3cce7e707fe509d34b58e673fb85bb8ac48d77964241fcbcb5985d6/elektronn2-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "c4ed8da94df8f8907d0d5aced77a22ec", "sha256": "1654c2b3041c0191d15b8b66740c84b803a67034b280f287f5e6838f259e0d51" }, "downloads": -1, "filename": "elektronn2-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c4ed8da94df8f8907d0d5aced77a22ec", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 324348, "upload_time": "2017-08-07T16:47:29", "url": "https://files.pythonhosted.org/packages/80/84/8cfb92d5ddc34bd0fcb118dc4dfc07a513050cc804fdf4ca6a96468b345b/elektronn2-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e0f3eddba07632f6cc985cdf3290d96e", "sha256": "25c8512c83b773d74e56661ef06d41c3d75eac85e9bc598882a19944fa943486" }, "downloads": -1, "filename": "elektronn2-0.4.0.tar.gz", "has_sig": false, "md5_digest": "e0f3eddba07632f6cc985cdf3290d96e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 300711, "upload_time": "2017-08-07T16:47:32", "url": "https://files.pythonhosted.org/packages/ea/43/488615cf36c616ae384bab83711e60656e410649de5cf958b56efaa8870f/elektronn2-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "8f8ad94fad3dc290b9b19041e563d23f", "sha256": "6c7a15fcbb4991dd3cbc0528f37517b3ded61b1e40c11b62b4e83a3fbc1e8aad" }, "downloads": -1, "filename": "elektronn2-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8f8ad94fad3dc290b9b19041e563d23f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 325710, "upload_time": "2017-09-05T23:28:03", "url": "https://files.pythonhosted.org/packages/1c/b9/bd54520fa08d5d024d4728081f5f5dcad330f1c00e791b19d8de63bb2410/elektronn2-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f90184dad88a1f09d28135393fa1cdc6", "sha256": "a6dc12d851a98edcd5cb534277d791132d5ede95050400dbe56ecb1928557742" }, "downloads": -1, "filename": "elektronn2-0.5.0.tar.gz", "has_sig": false, "md5_digest": "f90184dad88a1f09d28135393fa1cdc6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 302087, "upload_time": "2017-09-05T23:28:06", "url": "https://files.pythonhosted.org/packages/d8/cf/c999a1d7395ae01ed5e5704d91c8a3c0332c399951380ce97bbabe6c9eb4/elektronn2-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "2a7474062a973ea4acbe66b0a3054804", "sha256": "f41a8a9da66323336a222bc488b8f4c8f00dbc15251a57002b6ee199dd7c728f" }, "downloads": -1, "filename": "elektronn2-0.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2a7474062a973ea4acbe66b0a3054804", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 326042, "upload_time": "2017-10-09T12:45:20", "url": "https://files.pythonhosted.org/packages/bb/69/90acf58d03e508c96d1ee110fd4d33b988730693b2369ad40b61493e408c/elektronn2-0.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "489df699040f4a0ad3fb8e473de0d4a5", "sha256": "8ba1e33b900106f339cfb9306eefed080eed7f74374a67118962a8cb5dc2ff48" }, "downloads": -1, "filename": "elektronn2-0.5.1.tar.gz", "has_sig": false, "md5_digest": "489df699040f4a0ad3fb8e473de0d4a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 302356, "upload_time": "2017-10-09T12:45:23", "url": "https://files.pythonhosted.org/packages/d4/a1/c68172474c53e629337d70de4979d21fd2a16078eead0f8d69449992c409/elektronn2-0.5.1.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "95c419048baee74991c34e3fb7b1d3b8", "sha256": "410dc85a404b0d6e662dba7ef46f46c05c6534d4f0f5109de8448682a8dec8ae" }, "downloads": -1, "filename": "elektronn2-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "95c419048baee74991c34e3fb7b1d3b8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 325241, "upload_time": "2018-07-05T22:35:59", "url": "https://files.pythonhosted.org/packages/6b/a4/40d56152f2b980763c24e6b7f163e71fc55887b7f83e6b6beb433955adcf/elektronn2-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "39f8754956e297bb609bd26b67fc75c8", "sha256": "6777f929bdae9101abc25da9518dd47ca13edd975ae57768aa199e1a4fe8b7e0" }, "downloads": -1, "filename": "elektronn2-v0.6.0.tar.gz", "has_sig": false, "md5_digest": "39f8754956e297bb609bd26b67fc75c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 324954, "upload_time": "2018-07-05T22:36:02", "url": "https://files.pythonhosted.org/packages/b3/29/5c0e6263f94d1528dcc8a7457fecc685bcfa1e18a18d9cae94e69dde8f51/elektronn2-v0.6.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "95c419048baee74991c34e3fb7b1d3b8", "sha256": "410dc85a404b0d6e662dba7ef46f46c05c6534d4f0f5109de8448682a8dec8ae" }, "downloads": -1, "filename": "elektronn2-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "95c419048baee74991c34e3fb7b1d3b8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 325241, "upload_time": "2018-07-05T22:35:59", "url": "https://files.pythonhosted.org/packages/6b/a4/40d56152f2b980763c24e6b7f163e71fc55887b7f83e6b6beb433955adcf/elektronn2-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "39f8754956e297bb609bd26b67fc75c8", "sha256": "6777f929bdae9101abc25da9518dd47ca13edd975ae57768aa199e1a4fe8b7e0" }, "downloads": -1, "filename": "elektronn2-v0.6.0.tar.gz", "has_sig": false, "md5_digest": "39f8754956e297bb609bd26b67fc75c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 324954, "upload_time": "2018-07-05T22:36:02", "url": "https://files.pythonhosted.org/packages/b3/29/5c0e6263f94d1528dcc8a7457fecc685bcfa1e18a18d9cae94e69dde8f51/elektronn2-v0.6.0.tar.gz" } ] }