{ "info": { "author": "Leif Johnson", "author_email": "leif@lmjohns3.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Artificial Intelligence" ], "description": ".. image:: https://travis-ci.org/lmjohns3/theanets.svg?branch=master\n.. image:: https://coveralls.io/repos/lmjohns3/theanets/badge.svg?branch=master\n :target: https://coveralls.io/r/lmjohns3/theanets?branch=master\n\n============\n``THEANETS``\n============\n\nThe ``theanets`` package is a deep learning and neural network toolkit. It is\nwritten in Python to interoperate with excellent tools like ``numpy`` and\n``scikit-learn``, and it uses Theano_ to accelerate computations when possible\nusing your GPU. The package aims to provide:\n\n- a simple API for building and training common types of neural network models;\n- thorough documentation;\n- easy-to-read code;\n- and, under the hood, a fully expressive graph computation framework.\n\nThe package strives to \"make the easy things easy and the difficult things\npossible.\" Please try it out, and let us know what you think!\n\n.. _Theano: http://deeplearning.net/software/theano/\n\nInstallation\n============\n\nInstall the latest published code using pip::\n\n pip install theanets\n\nOr download the current source and run it from there::\n\n git clone http://github.com/lmjohns3/theanets\n cd theanets\n python setup.py develop\n\nNote that the contents of this README are linked to the version of ``theanets``\nthat you are using. If you're looking at the `README on GitHub`_, you'll need\nthe current GitHub code; if you're looking at the `README for a pypi release`_,\nyou'll need the code associated with that release.\n\n.. _README on GitHub: https://github.com/lmjohns3/theanets\n.. _README for a pypi release: https://pypi.python.org/pypi/theanets\n\nQuick Start: Classification\n===========================\n\nSuppose you want to create a classifier and train it on some 100-dimensional\ndata points that you've classified into 10 categories. No problem! With just a\nfew lines you can (a) provide some data, (b) build and (c) train a model,\nand (d) evaluate the model:\n\n.. code:: python\n\n import climate\n import theanets\n from sklearn.datasets import make_classification\n from sklearn.metrics import confusion_matrix\n\n climate.enable_default_logging()\n\n # Create a classification dataset.\n X, y = make_classification(\n n_samples=3000, n_features=100, n_classes=10, n_informative=10)\n X = X.astype('f')\n y = y.astype('i')\n cut = int(len(X) * 0.8) # training / validation split\n train = X[:cut], y[:cut]\n valid = X[cut:], y[cut:]\n\n # Build a classifier model with 100 inputs and 10 outputs.\n net = theanets.Classifier(layers=[100, 10])\n\n # Train the model using SGD with momentum.\n net.train(train, valid, algo='sgd', learning_rate=1e-4, momentum=0.9)\n\n # Show confusion matrices on the training/validation splits.\n for label, (X, y) in (('training:', train), ('validation:', valid)):\n print(label)\n print(confusion_matrix(y, net.predict(X)))\n\nLayers\n------\n\nThe model above is quite simplistic! Make it a bit more sophisticated by adding\na hidden layer:\n\n.. code:: python\n\n net = theanets.Classifier([100, 1000, 10])\n\nIn fact, you can just as easily create 3 (or any number of) hidden layers:\n\n.. code:: python\n\n net = theanets.Classifier([100, 1000, 1000, 1000, 10])\n\nBy default, hidden layers use the relu transfer function. By passing a tuple\ninstead of just an integer, you can change some of these layers to use different\nactivations_:\n\n.. code:: python\n\n maxout = (1000, 'maxout:4') # maxout with 4 pieces.\n net = theanets.Classifier([\n 100, 1000, maxout, (1000, 'tanh'), 10])\n\n.. _activations: http://theanets.readthedocs.org/en/latest/api/activations.html\n\nBy passing a dictionary instead, you can specify even more attributes of each\nlayer_, like how its parameters are initialized:\n\n.. code:: python\n\n # Sparsely-initialized layer with large nonzero weights.\n foo = dict(name='foo', size=1000, std=1, sparsity=0.9)\n net = theanets.Classifier([\n 100, foo, (1000, 'maxout:4'), (1000, 'tanh'), 10])\n\n.. _layer: http://theanets.readthedocs.org/en/latest/api/layers.html\n\nSpecifying layers is the heart of building models in ``theanets``. Read more\nabout this in `Specifying Layers`_.\n\n.. _Specifying Layers: http://localhost:8080/guide.html#guide-creating-specifying-layers\n\nRegularization\n--------------\n\nAdding regularizers is easy, too! Just pass them to the training method. For\ninstance, you can train up a sparse classification model with weight decay:\n\n.. code:: python\n\n # Penalize hidden-unit activity (L1 norm) and weights (L2 norm).\n net.train(train, valid, hidden_l1=0.001, weight_l2=0.001)\n\nIn ``theanets`` dropout is treated as a regularizer and can be set on many\nlayers at once:\n\n.. code:: python\n\n net.train(train, valid, hidden_dropout=0.5)\n\nor just on a specific layer:\n\n.. code:: python\n\n net.train(train, valid, dropout={'foo:out': 0.5})\n\nSimilarly, you can add Gaussian noise to any of the layers (here, just to the\ninput layer):\n\n.. code:: python\n\n net.train(train, valid, input_noise=0.3)\n\nOptimization Algorithms\n-----------------------\n\nYou can optimize your model using any of the algorithms provided by downhill_\n(SGD, NAG, RMSProp, ADADELTA, etc.), or additionally using a couple of\n`pretraining methods`_ specific to neural networks.\n\n.. _downhill: http://downhill.readthedocs.org/\n.. _pretraining methods: http://theanets.readthedocs.org/en/latest/api/trainers.html\n\nYou can also make as many successive calls to train() as you like. Each call can\ninclude different training algorithms:\n\n.. code:: python\n\n net.train(train, valid, algo='rmsprop')\n net.train(train, valid, algo='nag')\n\ndifferent learning hyperparameters:\n\n.. code:: python\n\n net.train(train, valid, algo='rmsprop', learning_rate=0.1)\n net.train(train, valid, algo='rmsprop', learning_rate=0.01)\n\nand different regularization hyperparameters:\n\n.. code:: python\n\n net.train(train, valid, input_noise=0.7)\n net.train(train, valid, input_noise=0.3)\n\nTraining models is a bit more art than science, but ``theanets`` tries to make\nit easy to evaluate different training approaches. Read more about this in\n`Training a Model`_.\n\n.. _Training a Model: http://theanets.readthedocs.org/en/latest/guide.html#guide-training\n\nQuick Start: Recurrent Models\n=============================\n\nRecurrent neural networks are becoming quite important for many sequence-based\ntasks in machine learning; one popular toy example for recurrent models is to\ngenerate text that's similar to some body of training text.\n\nIn these models, a recurrent classifier is set up to predict the identity of the\nnext character in a sequence of text, given all of the preceding characters. The\ninputs to the model are the one-hot encodings of a sequence of characters from\nthe text, and the corresponding outputs are the class labels of the subsequent\ncharacter. The ``theanets`` code has a Text_ helper class that provides easy\nencoding and decoding of text to and from integer classes; using the helper\nmakes the top-level code look like:\n\n.. code:: python\n\n import numpy as np, re, theanets\n\n chars = re.sub(r'\\s+', ' ', open('corpus.txt').read().lower())\n txt = theanets.recurrent.Text(chars, min_count=10)\n A = 1 + len(txt.alpha) # of letter classes\n\n # create a model to train: input -> gru -> relu -> softmax.\n net = theanets.recurrent.Classifier([A, (100, 'gru'), (1000, 'relu'), A])\n\n # train the model iteratively; draw a sample after every epoch.\n seed = txt.encode(txt.text[300017:300050])\n for tm, _ in net.itertrain(txt.classifier_batches(100, 32), momentum=0.9):\n print('{}|{} ({:.1f}%)'.format(\n txt.decode(seed),\n txt.decode(net.predict_sequence(seed, 40)),\n 100 * tm['acc']))\n\nThis example uses several features of ``theanets`` that make modeling neural\nnetworks fun and interesting. The model uses a layer of `Gated Recurrent Units`_\nto capture the temporal dependencies in the data. It also `uses a callable`_ to\nprovide data to the model, and takes advantage of `iterative training`_ to\nsample an output from the model after each training epoch.\n\n.. _Text: http://theanets.readthedocs.org/en/latest/api/generated/theanets.recurrent.Text.html\n.. _Gated Recurrent Units: http://theanets.readthedocs.org/en/latest/api/generated/theanets.layers.recurrent.GRU.html\n.. _uses a callable: http://downhill.readthedocs.org/en/stable/guide.html#data-using-callables\n.. _iterative training: http://downhill.readthedocs.org/en/stable/guide.html#iterative-optimization\n\nTo run this example, download a text you'd like to model (e.g., Herman\nMelville's *Moby Dick*) and save it in ``corpus.txt``::\n\n curl http://www.gutenberg.org/cache/epub/2701/pg2701.txt > corpus.txt\n\nThen when you run the script, the output might look something like this\n(abbreviated to show patterns)::\n\n used for light, but only as an oi|pr vgti ki nliiariiets-a, o t.;to niy , (16.6%)\n used for light, but only as an oi|s bafsvim-te i\"eg nadg tiaraiatlrekls tv (20.2%)\n used for light, but only as an oi|vetr uob bsyeatit is-ad. agtat girirole, (28.5%)\n used for light, but only as an oi|siy thinle wonl'th, in the begme sr\"hey (29.9%)\n used for light, but only as an oi|nr. bonthe the tuout honils ohe thib th (30.5%)\n used for light, but only as an oi|kg that mand sons an, of,rtopit bale thu (31.0%)\n used for light, but only as an oi|nsm blasc yan, ang theate thor wille han (32.1%)\n used for light, but only as an oi|b thea mevind, int amat ars sif istuad p (33.3%)\n used for light, but only as an oi|msenge bie therale hing, aik asmeatked s (34.1%)\n used for light, but only as an oi|ge,\" rrermondy ghe e comasnig that urle (35.5%)\n used for light, but only as an oi|s or thartich comase surt thant seaiceng (36.1%)\n used for light, but only as an oi|s lot fircennor, unding dald bots trre i (37.1%)\n used for light, but only as an oi|st onderass noptand. \"peles, suiondes is (38.2%)\n used for light, but only as an oi|gnith. s. lited, anca! stobbease so las, (39.3%)\n used for light, but only as an oi|chics fleet dong berieribus armor has or (40.1%)\n used for light, but only as an oi|cs and quirbout detom tis glome dold pco (41.1%)\n used for light, but only as an oi|nht shome wand, the your at movernife lo (42.0%)\n used for light, but only as an oi|r a reald hind the, with of the from sti (43.0%)\n used for light, but only as an oi|t beftect. how shapellatgen the fortower (44.0%)\n used for light, but only as an oi|rtucated fanns dountetter from fom to wi (45.2%)\n used for light, but only as an oi|r the sea priised tay queequings hearhou (46.8%)\n used for light, but only as an oi|ld, wode, i long ben! but the gentived. (48.0%)\n used for light, but only as an oi|r wide-no nate was him. \"a king to had o (49.1%)\n used for light, but only as an oi|l erol min't defositanable paring our. 4 (50.0%)\n used for light, but only as an oi|l the motion ahab, too, and relay in aha (51.0%)\n used for light, but only as an oi|n dago, and contantly used the coil; but (52.3%)\n used for light, but only as an oi|l starbuckably happoss of the fullies ti (52.4%)\n used for light, but only as an oi|led-bubble most disinuan into the mate-- (53.3%)\n used for light, but only as an oi|len. ye?' 'tis though moby starbuck, and (53.6%)\n used for light, but only as an oi|l, and the pequodeers. but was all this: (53.9%)\n used for light, but only as an oi|ling his first repore to the pequod, sym (54.4%)\n used for light, but only as an oi|led escried; we they like potants--old s (54.3%)\n used for light, but only as an oi|l-ginqueg! i save started her supplain h (54.3%)\n used for light, but only as an oi|l is, the captain all this mildly bounde (54.9%)\n\nHere, the seed text is shown left of the pipe character, and the randomly\nsampled sequence follows. In parantheses are the per-character accuracy values\non the training set while training the model. The pattern of learning proceeds\nfrom almost-random character generation, to producing groups of letters\nseparated by spaces, to generating words that seem like they might belong in\n*Moby Dick*, things like \"captain,\" \"ahab, too,\" and \"constantly used the coil.\"\n\nMuch amusement can be derived from a temporal model extending itself forward in\nthis way. After all, how else would we ever think of \"Pequodeers,\"\n\"Starbuckably,\" or \"Ginqueg\"?!\n\nMore Information\n================\n\nSource: https://github.com/lmjohns3/theanets\n\nDocumentation: http://theanets.readthedocs.org\n\nMailing list: https://groups.google.com/forum/#!forum/theanets", "description_content_type": null, "docs_url": "https://pythonhosted.org/theanets/", "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/lmjohns3/theanets", "keywords": "machine-learning neural-network deep-neural-network recurrent-neural-network autoencoder sparse-autoencoder classifier theano", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "theanets", "package_url": "https://pypi.org/project/theanets/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/theanets/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/lmjohns3/theanets" }, "release_url": "https://pypi.org/project/theanets/0.7.3/", "requires_dist": null, "requires_python": null, "summary": "Feedforward and recurrent neural nets using Theano", "version": "0.7.3" }, "last_serial": 1928257, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "0c579c395c0e9f7525ff97384b3cf74f", "sha256": "5243380713302bf2134fbbf29dc84da4fbbcd6891d89df8e9e6a910dce6d3de2" }, "downloads": -1, "filename": "theanets-0.1.0.tar.gz", "has_sig": false, "md5_digest": "0c579c395c0e9f7525ff97384b3cf74f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15648, "upload_time": "2013-07-23T17:37:39", "url": "https://files.pythonhosted.org/packages/8f/d8/ceadea3b9ad4649e9a558bbc01d158442d7ff4551d33b0ad165bacb80890/theanets-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "6f216335c4bdfec7da58a55e5524a8a9", "sha256": "179340ac3a870c0fd7ea1c00e6d5bb5c8dc2290536a9dd48a26e697cce03a61e" }, "downloads": -1, "filename": "theanets-0.1.1.tar.gz", "has_sig": false, "md5_digest": "6f216335c4bdfec7da58a55e5524a8a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18157, "upload_time": "2014-01-14T23:13:44", "url": "https://files.pythonhosted.org/packages/ea/29/9a2cc7b3cf187b8fc9c34c763cb515b7b4c0aa70e387e747f0497a586d4b/theanets-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "abef587d7fbc0df16fd2f7431d1b662e", "sha256": "946d08194bd4a208b896d177bf260f31d4a952584cab2a8010d89e2960ea0791" }, "downloads": -1, "filename": "theanets-0.1.2.tar.gz", "has_sig": false, "md5_digest": "abef587d7fbc0df16fd2f7431d1b662e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18163, "upload_time": "2014-01-23T17:57:15", "url": "https://files.pythonhosted.org/packages/e1/59/cf26947a3639e039592d3cbc7da05ae0a3959629773487ca1c3d8c046911/theanets-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "733d54b3d989a1db65d00b29ae4191b1", "sha256": "8e22209a5275c203661cf5fedec4ed2e01cf54b64f6208ae5ae0d3305f715ab7" }, "downloads": -1, "filename": "theanets-0.2.0.tar.gz", "has_sig": false, "md5_digest": "733d54b3d989a1db65d00b29ae4191b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20462, "upload_time": "2014-06-03T01:10:44", "url": "https://files.pythonhosted.org/packages/85/8f/5656db30fbc173dbe7adb7ae4f1788efbf807e6b2dc773dc21f4823ad844/theanets-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "bb32ef56458e95ad20b6725b8934c637", "sha256": "08db9376f9f06d2e050a8d05eeae7e05fddc1d61b88252a794544da2f04d44d5" }, "downloads": -1, "filename": "theanets-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "bb32ef56458e95ad20b6725b8934c637", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 34155, "upload_time": "2014-11-07T16:48:31", "url": "https://files.pythonhosted.org/packages/3e/85/cbe91792e67bbe9d5eb2bdfeb24d4887bcfa6461b62d6a5d05244be7a32e/theanets-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a58d424d34da31e2223612320d966c79", "sha256": "23452dc38b9794ff531545ebe6cd205fd918eb4ebb92359d63745f3696d8bd6e" }, "downloads": -1, "filename": "theanets-0.3.0.tar.gz", "has_sig": false, "md5_digest": "a58d424d34da31e2223612320d966c79", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24460, "upload_time": "2014-11-07T16:48:26", "url": "https://files.pythonhosted.org/packages/47/ca/50c6c47bb23673b462075ac942e52e1c51175b70b456c71b8d0a54a7df36/theanets-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "f61129fdfa07b147e9cf1e7788aa7ea4", "sha256": "895ae5d78a17fee29f88f7c700573768cd272c16d4e475d0a419196b78af7cc7" }, "downloads": -1, "filename": "theanets-0.4.0-py2-none-any.whl", "has_sig": false, "md5_digest": "f61129fdfa07b147e9cf1e7788aa7ea4", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 38446, "upload_time": "2014-12-12T20:32:34", "url": "https://files.pythonhosted.org/packages/5c/ed/3f535f567728d6395d541aea181df4d7fc8e023b6c762a1fa3569d269b2e/theanets-0.4.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c934c3cc140590361bfa095567f21b83", "sha256": "c2136b045bb8a91ea6b7890ca16a2de5d2bd1ffead0985d70539f2a41bceb858" }, "downloads": -1, "filename": "theanets-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c934c3cc140590361bfa095567f21b83", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 38446, "upload_time": "2014-12-12T20:32:18", "url": "https://files.pythonhosted.org/packages/b0/4d/cdc669e9ec31c9bec6fdf8b2d7da88700d5c123d624c6b8b4f6ce80bef62/theanets-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "155ead6e29d8dcfc792ad685417aec7b", "sha256": "0a6e88fddb5193688da781aad43f35db9328ae5623368962cfddd1fbc4763088" }, "downloads": -1, "filename": "theanets-0.4.0.tar.gz", "has_sig": false, "md5_digest": "155ead6e29d8dcfc792ad685417aec7b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28765, "upload_time": "2014-12-12T20:32:14", "url": "https://files.pythonhosted.org/packages/e1/6a/2e6d815766c9a2964216a73301a3eb1c4c8b2c0142371d3259117a8cc7cd/theanets-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "51c90a03cf4ddf8d8325755dc505f9c0", "sha256": "7f193f227ecba613e26d6b938e51f9513b5872fb04847a9171ad526c493c6c87" }, "downloads": -1, "filename": "theanets-0.5.0-py2-none-any.whl", "has_sig": false, "md5_digest": "51c90a03cf4ddf8d8325755dc505f9c0", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 46541, "upload_time": "2015-02-10T20:51:53", "url": "https://files.pythonhosted.org/packages/f4/c9/3ee6b8a65a23b41725dea9821e6c60ef95da7d695edd007e3216217a8df9/theanets-0.5.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "67476d79fb18657540b30684f9c3b0d2", "sha256": "8a5ae1cdc3e70b847ce02fd910925de207a7aa363e968ef43d2afe575de3dd05" }, "downloads": -1, "filename": "theanets-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "67476d79fb18657540b30684f9c3b0d2", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 46541, "upload_time": "2015-02-10T20:51:34", "url": "https://files.pythonhosted.org/packages/0c/37/1845d449d0f0055ee8206d17456084a4d065a8b105f1616b23cfb82ad87c/theanets-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c5baa33974dcdeb88d093348a9e13a40", "sha256": "eafced946308b31b37f3c2e1e117ca56fb6f6b92f43ac46bd59834b0ba17947d" }, "downloads": -1, "filename": "theanets-0.5.0.tar.gz", "has_sig": false, "md5_digest": "c5baa33974dcdeb88d093348a9e13a40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41398, "upload_time": "2015-02-10T20:51:32", "url": "https://files.pythonhosted.org/packages/b2/0a/849be661970b09cb210ecbe9d435675871f669e642411c669eb3c6c5dc49/theanets-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "5adfa3d2c76ecbe308c7c732e172acfb", "sha256": "2ad6ab0916a1594fc947555236fd54dfc2b57a6a6fa0d3134d3f39670f1e32f0" }, "downloads": -1, "filename": "theanets-0.5.1-py2-none-any.whl", "has_sig": false, "md5_digest": "5adfa3d2c76ecbe308c7c732e172acfb", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 46569, "upload_time": "2015-02-12T16:15:30", "url": "https://files.pythonhosted.org/packages/ae/d8/5a829f25a4758b99c562165969ded5b5c220104cd367d7b7ea031ac15e04/theanets-0.5.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4dee1709bf351f127a4904cf9254e63d", "sha256": "4b16f790d73e891aab6151b2cddd638fdd288507e49da406d665cb7ff1cdce6f" }, "downloads": -1, "filename": "theanets-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4dee1709bf351f127a4904cf9254e63d", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 46574, "upload_time": "2015-02-12T16:15:09", "url": "https://files.pythonhosted.org/packages/e8/a3/c4eb93be96031315963ab55b935bc455a9ff759d202b48b49aee214025d7/theanets-0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "554383b7f0ccd20e7431052f3fa11291", "sha256": "27ae48df856904e5a0a49c27f4ea10264aa3046c30d450f275c44bd50b5a343f" }, "downloads": -1, "filename": "theanets-0.5.1.tar.gz", "has_sig": false, "md5_digest": "554383b7f0ccd20e7431052f3fa11291", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41417, "upload_time": "2015-02-12T16:15:07", "url": "https://files.pythonhosted.org/packages/30/4b/dec362812fbae37df210261c409fef24d677f7ec1915bebfa0f3775bff98/theanets-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "d7698b035636a8ca94727cce8223bdba", "sha256": "f57e147fc0164fb462b6e775b9898ed6d6f66a0a7a812dbd1c5dd1a0f6abaec1" }, "downloads": -1, "filename": "theanets-0.5.2-py2-none-any.whl", "has_sig": false, "md5_digest": "d7698b035636a8ca94727cce8223bdba", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 46555, "upload_time": "2015-02-12T16:50:56", "url": "https://files.pythonhosted.org/packages/4b/65/c7808340b402c8ff042cd04acc422d5022727d6ec5205ac555173359d18d/theanets-0.5.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "38a31791e8f0fbef907d60041d3913c3", "sha256": "8cd89fee0660a1b5a6aa4006b50d79cacded27aef88701739b61e9413bb7bc6b" }, "downloads": -1, "filename": "theanets-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "38a31791e8f0fbef907d60041d3913c3", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 46557, "upload_time": "2015-02-12T16:50:54", "url": "https://files.pythonhosted.org/packages/41/0c/0877c5dcc597a2b156096245eba18aa17d52c2f5f8dcb8e4a50ff8702db9/theanets-0.5.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aabaeafd5007fb37c816dc16fa75f699", "sha256": "8afa7639f6a917353557afef3d49d4c214f54e416a4234694f63343f984c70a7" }, "downloads": -1, "filename": "theanets-0.5.2.tar.gz", "has_sig": false, "md5_digest": "aabaeafd5007fb37c816dc16fa75f699", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41413, "upload_time": "2015-02-12T16:50:52", "url": "https://files.pythonhosted.org/packages/42/0d/78c0f68e583d2011aaf252db01b6847a0c61ffba118c81d807df99748081/theanets-0.5.2.tar.gz" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "df52cb43acf0f254b369f52388229466", "sha256": "e2908b0703582aef97397ef99ec649678c256c4da98ac5e17e35bb0d4979e4b1" }, "downloads": -1, "filename": "theanets-0.5.3-py2-none-any.whl", "has_sig": false, "md5_digest": "df52cb43acf0f254b369f52388229466", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 48629, "upload_time": "2015-04-22T20:16:11", "url": "https://files.pythonhosted.org/packages/9d/f0/812fc9c2d83e5c4d50740b104aae2bd1e584f21ed561c7ad28a2f4c8c750/theanets-0.5.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bbe02dd6fd93f913241021de2225deb2", "sha256": "c016b95fb810d989dc57b3e2c67e4c15e274b01fa7b6955e27724e85d021e08b" }, "downloads": -1, "filename": "theanets-0.5.3-py3-none-any.whl", "has_sig": false, "md5_digest": "bbe02dd6fd93f913241021de2225deb2", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 48633, "upload_time": "2015-04-22T20:15:49", "url": "https://files.pythonhosted.org/packages/7e/3b/de21819c72e4c102447278e9bd9aabff597e66bc57cd9f9c011b161aa351/theanets-0.5.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1c4465b0c68a67926633c0f9b0528a44", "sha256": "fb67e812328a55af98ba5976f4652516b7ea5a8bff2536fe1d4553024f617f99" }, "downloads": -1, "filename": "theanets-0.5.3.tar.gz", "has_sig": false, "md5_digest": "1c4465b0c68a67926633c0f9b0528a44", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43538, "upload_time": "2015-04-22T20:15:46", "url": "https://files.pythonhosted.org/packages/ec/76/b8c500f53689d826c21421368269b7595cfbc8c8a17ec642c27ea135ba3d/theanets-0.5.3.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "05cddecc5ac1112ab07d113726b71a1c", "sha256": "781499baa0444b0d358c9dc396f2054f85dc17100af8568bdc20d0140ec069d0" }, "downloads": -1, "filename": "theanets-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "05cddecc5ac1112ab07d113726b71a1c", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 56468, "upload_time": "2015-07-07T20:41:42", "url": "https://files.pythonhosted.org/packages/fa/ac/c99a2db86e56830294a093d55976157d9b2b54013009737573a8b77ba3cd/theanets-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "15a362c3c189ae8f831e79c0ba9931b8", "sha256": "cd01ed0eb5535536770490009b4f9e0fb52ea5cb61e36c527b36171b2c80d4b6" }, "downloads": -1, "filename": "theanets-0.6.0.tar.gz", "has_sig": false, "md5_digest": "15a362c3c189ae8f831e79c0ba9931b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47386, "upload_time": "2015-07-07T20:41:38", "url": "https://files.pythonhosted.org/packages/0a/f2/ef3f37132a3fc4d5ccd5dc08562f26b2d6020d974fd255509f8f34801618/theanets-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "ef161dc2702be3f580b08c9048ce850b", "sha256": "e54c49087a49592150be37fc2eda82ce2361945f9f500eb343cceafe368ddda5" }, "downloads": -1, "filename": "theanets-0.6.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ef161dc2702be3f580b08c9048ce850b", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 56828, "upload_time": "2015-07-09T18:35:19", "url": "https://files.pythonhosted.org/packages/0d/4a/71dde582b69bc0d691124367b3f331cec0cfc9310fd164463a69461546c6/theanets-0.6.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c40ccabdee24b7393f9ac09f8d63a64", "sha256": "64b015407ae3828552b82ace32f499cfe894b11731bfd91dde43d96ddbc31400" }, "downloads": -1, "filename": "theanets-0.6.1.tar.gz", "has_sig": false, "md5_digest": "7c40ccabdee24b7393f9ac09f8d63a64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47695, "upload_time": "2015-07-09T18:35:15", "url": "https://files.pythonhosted.org/packages/8b/20/d3155e5fc51556ad41e019387c12ee5dabaffd61574a415203656748e09f/theanets-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "f51ebd8f3a197bdb80927fe7d2b7ace5", "sha256": "f0a2b6681de656a98d78373eecf9d8431afcbfbcfc57261198256d8042f4b1d3" }, "downloads": -1, "filename": "theanets-0.6.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f51ebd8f3a197bdb80927fe7d2b7ace5", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 56069, "upload_time": "2015-07-14T02:45:56", "url": "https://files.pythonhosted.org/packages/5b/a5/828c8c2fbcf8858cf3e6cd20eb711f018af95a2cecde014fc9fc8b805fa1/theanets-0.6.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "897d4fd76e25f5b3316da637966efd52", "sha256": "0e08afa2aa3a8ad62828face05b4fc4d1a7e209ba13083c33dc8d76e11d431ff" }, "downloads": -1, "filename": "theanets-0.6.2.tar.gz", "has_sig": false, "md5_digest": "897d4fd76e25f5b3316da637966efd52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46919, "upload_time": "2015-07-14T02:45:52", "url": "https://files.pythonhosted.org/packages/26/20/59e512d4256bedd0b6abc368e8cd6b295ebd1d07d8d8d50782906ec991b6/theanets-0.6.2.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "4e2915581d49f55b1073a97da1f3b0a6", "sha256": "5bd46ce390d871967c8bfbf9131cf9374fe37b33894464ff83b09a68761b9310" }, "downloads": -1, "filename": "theanets-0.6.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4e2915581d49f55b1073a97da1f3b0a6", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 68436, "upload_time": "2015-12-03T20:33:11", "url": "https://files.pythonhosted.org/packages/84/14/ea20e5309c34d81f893c7df5bb1df910c5c18070f6d7462ed7f43659c436/theanets-0.6.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c481c7c3ac4dba6b06d48012a0e77005", "sha256": "eb63a9e71c839fbe672c07600b653775bda12d2b5fc2dc59691a7d593b6b8b03" }, "downloads": -1, "filename": "theanets-0.6.3.tar.gz", "has_sig": false, "md5_digest": "c481c7c3ac4dba6b06d48012a0e77005", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42900, "upload_time": "2015-12-03T20:33:06", "url": "https://files.pythonhosted.org/packages/83/a5/83dcc3c9a7d8cf081ce586e81caf47b30753ce74fbd7f19634816a02916b/theanets-0.6.3.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "43f555fa21d763cb1e0015c529900fa7", "sha256": "cb7f1fd85582733ba54bdeb23d74425bf8e70c21bd4603e6001c85a9602fe539" }, "downloads": -1, "filename": "theanets-0.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "43f555fa21d763cb1e0015c529900fa7", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 71448, "upload_time": "2015-11-03T03:23:48", "url": "https://files.pythonhosted.org/packages/39/c3/52a977c915e2e4b0a1c76029f546989e10d75ac4df7198cbc5f7a3a7642f/theanets-0.7.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6fab96ad5f6a2f9095ae8c97d89e61ac", "sha256": "62908509c9528816e136ea6884ee42f3b3e982f8f80a55ae6bc0c9701c5d9f48" }, "downloads": -1, "filename": "theanets-0.7.0.tar.gz", "has_sig": false, "md5_digest": "6fab96ad5f6a2f9095ae8c97d89e61ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 59401, "upload_time": "2015-11-03T03:23:41", "url": "https://files.pythonhosted.org/packages/13/77/c225125890f509496e458ba8680035a61049939e94269399754c6a26c196/theanets-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "e7816a4ee8b5766fcf2b1c6621307cb8", "sha256": "8031b130b01037f0ff6304e7af26a9b9cb59b70e70755d520ff5c58980cc37f1" }, "downloads": -1, "filename": "theanets-0.7.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e7816a4ee8b5766fcf2b1c6621307cb8", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 71096, "upload_time": "2015-12-03T17:11:14", "url": "https://files.pythonhosted.org/packages/10/ee/2963d02127555b3c3448c88e3c0001468dd81d301ec009fb905749ce7812/theanets-0.7.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aa4f2d924a47696c8c70b51b02b43505", "sha256": "6ba4292a736cb2f07eb1eb0448ede6e6378cb7f73c1f16284d1ef2f7464977d7" }, "downloads": -1, "filename": "theanets-0.7.1.tar.gz", "has_sig": false, "md5_digest": "aa4f2d924a47696c8c70b51b02b43505", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55196, "upload_time": "2015-12-03T17:11:04", "url": "https://files.pythonhosted.org/packages/56/68/bcc8b3551254a35ed1d70c003252f6fce8c778970ceb6aa7fbe184efb74b/theanets-0.7.1.tar.gz" } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "eb541111a4262a5e656eda712e344f16", "sha256": "6e2d3f172f41431455439d363bf88cb512bf8dd6834ec7ff12a67977712ba795" }, "downloads": -1, "filename": "theanets-0.7.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "eb541111a4262a5e656eda712e344f16", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 71180, "upload_time": "2015-12-03T20:02:17", "url": "https://files.pythonhosted.org/packages/67/c0/5da66f6b2608888133caaca4aab8bea0c4383c1418745c61c3da3a368725/theanets-0.7.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "93e6e532ead8712a8c63e3bffa261b4c", "sha256": "f11b8effd146204260158abc1a42f7dbb4b850cbbbf06d5ae543dfaa05e060d9" }, "downloads": -1, "filename": "theanets-0.7.2.tar.gz", "has_sig": false, "md5_digest": "93e6e532ead8712a8c63e3bffa261b4c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55269, "upload_time": "2015-12-03T20:02:01", "url": "https://files.pythonhosted.org/packages/58/75/ef28d5ee5739a2657c9107e00975c69df3db326090bad8d5bf440192e0da/theanets-0.7.2.tar.gz" } ], "0.7.3": [ { "comment_text": "", "digests": { "md5": "325176d5405ba7fe12085d5f1931563e", "sha256": "90f9f9e69716b73febd2c4f750cff16f67d6889814b7f5cbc3eabf2beb48b02b" }, "downloads": -1, "filename": "theanets-0.7.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "325176d5405ba7fe12085d5f1931563e", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 73199, "upload_time": "2016-01-28T23:17:02", "url": "https://files.pythonhosted.org/packages/58/58/67329f5da252c282adb915a705e8c34be0a964cfbe7b43a2320103dd1a46/theanets-0.7.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7ff02a259e87dab98bbde9eba5ffab70", "sha256": "bdbdc4f84c018a7f3d212ac7706dc0e6050775bdf173931fe7e13fd53dc973d3" }, "downloads": -1, "filename": "theanets-0.7.3.tar.gz", "has_sig": false, "md5_digest": "7ff02a259e87dab98bbde9eba5ffab70", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61629, "upload_time": "2016-01-28T23:16:54", "url": "https://files.pythonhosted.org/packages/45/2f/7cabb204f24f661ea9c4bf838b18acad973dc984fad56831ffb017785c52/theanets-0.7.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "325176d5405ba7fe12085d5f1931563e", "sha256": "90f9f9e69716b73febd2c4f750cff16f67d6889814b7f5cbc3eabf2beb48b02b" }, "downloads": -1, "filename": "theanets-0.7.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "325176d5405ba7fe12085d5f1931563e", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 73199, "upload_time": "2016-01-28T23:17:02", "url": "https://files.pythonhosted.org/packages/58/58/67329f5da252c282adb915a705e8c34be0a964cfbe7b43a2320103dd1a46/theanets-0.7.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7ff02a259e87dab98bbde9eba5ffab70", "sha256": "bdbdc4f84c018a7f3d212ac7706dc0e6050775bdf173931fe7e13fd53dc973d3" }, "downloads": -1, "filename": "theanets-0.7.3.tar.gz", "has_sig": false, "md5_digest": "7ff02a259e87dab98bbde9eba5ffab70", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61629, "upload_time": "2016-01-28T23:16:54", "url": "https://files.pythonhosted.org/packages/45/2f/7cabb204f24f661ea9c4bf838b18acad973dc984fad56831ffb017785c52/theanets-0.7.3.tar.gz" } ] }