{ "info": { "author": "Felix Lau", "author_email": "felixlaumon@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Programming Language :: Python :: 2.7" ], "description": "# nolearn-utils\n\n[![Build Status](https://travis-ci.org/felixlaumon/nolearn_utils.svg?branch=master)](https://travis-ci.org/felixlaumon/nolearn_utils)\n\nIterators and handlers for nolearn.lasagne to allow efficient real-time image augmentation and training progress monitoring\n\n## Real-time image augmentation\n\n- `ShuffleBatchIteratorMixin` to shuffle training samples\n- `ReadImageBatchIteratorMixin` to transform image file path into image as color or as gray, and with specified image size\n- `RandomFlipBatchIteratorMixin` to randomly (uniform) flip the image horizontally or verticaly\n- `AffineTransformBatchIteratorMixin` to apply affine transformation (scale, rotate, translate) to randomly selected images from the given transformation options - `BufferedBatchIteratorMixin` to perform transformation in another thread automatically and put the result in a buffer (default size = 5)\n- `LCNBatchIteratorMixin` to perform local contrast normalization to images\n- `MeanSubtractBatchIteratorMixin` to subtract samples from the pre-calculated mean\n\nExample of using iterators as below:\n\n train_iterator_mixins = [\n ShuffleBatchIteratorMixin,\n ReadImageBatchIteratorMixin,\n RandomFlipBatchIteratorMixin,\n AffineTransformBatchIteratorMixin,\n BufferedBatchIteratorMixin,\n ]\n TrainIterator = make_iterator('TrainIterator', train_iterator_mixins)\n\n train_iterator_kwargs = {\n 'buffer_size': 5,\n 'batch_size': batch_size,\n 'read_image_size': (image_size, image_size),\n 'read_image_as_gray': False,\n 'read_image_prefix_path': './data/train/',\n 'flip_horizontal_p': 0.5,\n 'flip_vertical_p': 0,\n 'affine_p': 0.5,\n 'affine_scale_choices': np.linspace(0.75, 1.25, 5),\n 'affine_translation_choices': np.arange(-3, 4, 1),\n 'affine_rotation_choices': np.arange(-45, 50, 5)\n }\n train_iterator = TrainIterator(**train_iterator_kwargs)\n\nThe `BaseBatchIterator` is also modified from `nolearn.lasagne` to provide a progress bar for training process for each iteration\n\n## Handlers\n\n- `EarlyStopping` stops training when loss stop improving\n- `StepDecay` to gradually reduce a parameter (e.g. learning rate) over time\n- `SaveTrainingHistory` to save training history (e.g. training loss)\n- `PlotTrainingHistory` to plot out training loss and validation accuracy\n over time after each iteration with matplotlib\n\n## Examples\n\nExample code requires `scikit-learn`\n\n### MNIST\n\n`example/mnist/train.py` should produce a model of about 99.5% accuracy in less than 50 epoch.\n\nMNIST data can be downloaded from\n[Kaggle](https://www.kaggle.com/c/digit-recognizer).\n\n### CIFAR10\n\nCIFAR10 images can be downloaded from [Kaggle](https://www.kaggle.com/c/cifar-10/data). Place the downloaded data as follows:\n\n examples/cifar10\n \u251c\u2500\u2500 data\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 train\n \u2502 | \u251c\u2500\u2500 1.png\n \u2502 | \u251c\u2500\u2500 2.png\n \u2502 | \u251c\u2500\u2500 3.png\n \u2502 | \u251c\u2500\u2500 ...\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 trainLabels.csv\n \u2514\u2500\u2500 train.py\n\n`example/cifat10/train.py` should produce a model at about 85% accuracy at 100 epoch. Images are read from disk and augmented at training time (from another thread)\n\n\n## TODO\n\n- [ ] Embarrassingly parallelize transform\n\n\n## License\n\nMIT & BSD\n\n\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/4Catalyzer/nolearn-utils", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "nolearn-utils", "package_url": "https://pypi.org/project/nolearn-utils/", "platform": "", "project_url": "https://pypi.org/project/nolearn-utils/", "project_urls": { "Homepage": "https://github.com/4Catalyzer/nolearn-utils" }, "release_url": "https://pypi.org/project/nolearn-utils/0.3.1/", "requires_dist": [ "joblib", "numpy", "scikit-image", "six", "Sphinx; extra == 'docs'", "Lasagne; extra == 'examples'", "nolearn; extra == 'examples'", "mock; extra == 'testing'", "pytest; extra == 'testing'", "pytest-cov; extra == 'testing'", "pytest-pep8; extra == 'testing'" ], "requires_python": "", "summary": "Utilities for nolearn.lasagne", "version": "0.3.1" }, "last_serial": 2997995, "releases": { "0.1.dev0": [ { "comment_text": "", "digests": { "md5": "8d7c46a579eacc3955273845650d5280", "sha256": "b4eb434551e161e8e8240d6901e87b1847b9b64a56bcc11ed05a864b530ccd35" }, "downloads": -1, "filename": "nolearn_utils-0.1.dev0-py2-none-any.whl", "has_sig": false, "md5_digest": "8d7c46a579eacc3955273845650d5280", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 14163, "upload_time": "2016-08-30T02:00:57", "url": "https://files.pythonhosted.org/packages/79/f1/62235e7125c38fec212dcddf5381ec58ae300fc81400ee1eef7f04f5cb7d/nolearn_utils-0.1.dev0-py2-none-any.whl" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "9df890a15ae80f958c86f684b4cef510", "sha256": "434840284edf26dd14eb0df4a9f98435b94a578223738731e457ae174c9dae90" }, "downloads": -1, "filename": "nolearn_utils-0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "9df890a15ae80f958c86f684b4cef510", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 14273, "upload_time": "2017-01-13T20:20:05", "url": "https://files.pythonhosted.org/packages/cf/3d/b37fc12247997ca595bbbc117e91c88b69da2526090d6a47f06aabfe3454/nolearn_utils-0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8feddf0c8d8d2ee3f8de6198eacac290", "sha256": "0946bad297f8f4088ccca8236d1b79bab5605d5b650c1dad52b6bed193cbf512" }, "downloads": -1, "filename": "nolearn_utils-0.2.tar.gz", "has_sig": false, "md5_digest": "8feddf0c8d8d2ee3f8de6198eacac290", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10278, "upload_time": "2017-01-13T20:20:08", "url": "https://files.pythonhosted.org/packages/28/97/d8069855c57c91705026630d66ac8e6d45be99f97f64d915735b9aa638a2/nolearn_utils-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "fbd8328ec8a9403dafbb415b16a05c73", "sha256": "f7630e6d7724566d945ee4050a31f90b37c47dc90d7b7a3db50322da390eaa3c" }, "downloads": -1, "filename": "nolearn_utils-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fbd8328ec8a9403dafbb415b16a05c73", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14304, "upload_time": "2017-01-13T20:24:55", "url": "https://files.pythonhosted.org/packages/80/e2/1fd1ef4efe8b6d4f484e2155509123e52f899269784d30add13ff3f92161/nolearn_utils-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7ac8fa3279ac4d11ccf9a8b1246fea19", "sha256": "4b1c0df278379ff7e2d16b07ffd9ce4a1cb80287b322cc69237753293a729d93" }, "downloads": -1, "filename": "nolearn_utils-0.2.1.tar.gz", "has_sig": false, "md5_digest": "7ac8fa3279ac4d11ccf9a8b1246fea19", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10293, "upload_time": "2017-01-13T20:24:57", "url": "https://files.pythonhosted.org/packages/6f/ce/1ce88fff035f1196c02d473dd56896948694d51cf780d843d5196358821f/nolearn_utils-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "1e6ff50a36a8e3b91edbe65729484608", "sha256": "093db465c1a0b3455a561dd39f8d0a7896d1267958708471eb83d9188d322736" }, "downloads": -1, "filename": "nolearn_utils-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1e6ff50a36a8e3b91edbe65729484608", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14560, "upload_time": "2017-03-16T22:48:18", "url": "https://files.pythonhosted.org/packages/d6/13/54477753a56b01d6cdb30699c9b2b2eb14edabce81c01ba5b9ab3d47cb98/nolearn_utils-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8a3b9bc30994eff644f30ab048532367", "sha256": "11dc28c911e21ca8fbff97d3baeb0a1997572fd1fc6c40435a73c588556cf7f3" }, "downloads": -1, "filename": "nolearn_utils-0.2.2.tar.gz", "has_sig": false, "md5_digest": "8a3b9bc30994eff644f30ab048532367", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10396, "upload_time": "2017-03-16T22:48:17", "url": "https://files.pythonhosted.org/packages/3c/18/061d52100f899bbee77b3aa0cd113b29aa876d32f2526e85962b813bcb0e/nolearn_utils-0.2.2.tar.gz" } ], "0.2.dev0": [ { "comment_text": "", "digests": { "md5": "178107e136f1274589e6b90ede997a0c", "sha256": "7b1d4eebe311f88fc826dda7bf8c38c5b1dc2f26997f277388f9d001533e72c6" }, "downloads": -1, "filename": "nolearn_utils-0.2.dev0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "178107e136f1274589e6b90ede997a0c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14271, "upload_time": "2016-11-08T07:40:58", "url": "https://files.pythonhosted.org/packages/fb/f7/6159faf5153e316aa74d678b8e83fcdd8cb3adf3260f49cd19d7b479f4a6/nolearn_utils-0.2.dev0-py2.py3-none-any.whl" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "b14aa69b5770808a5845650f85be716c", "sha256": "e071b465cc8012958d5acf1eeb3552045bfb640a3994bbb431d6ed2fc910cb8a" }, "downloads": -1, "filename": "nolearn_utils-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b14aa69b5770808a5845650f85be716c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14590, "upload_time": "2017-07-02T13:48:44", "url": "https://files.pythonhosted.org/packages/41/2e/9f9cabd47cc956dc2e463143184bce20ab42ed8543635f41d9bed10ea045/nolearn_utils-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "53028198cce4587ca06e55524b0698f4", "sha256": "41e3169a22c87303cc8c000a141d025f34a964ab627a8e53fa6c5b0239ad3a4e" }, "downloads": -1, "filename": "nolearn_utils-0.3.0.tar.gz", "has_sig": false, "md5_digest": "53028198cce4587ca06e55524b0698f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10423, "upload_time": "2017-07-02T13:48:45", "url": "https://files.pythonhosted.org/packages/26/46/4f9844129aaa32a2a8430a5937fc1e74e62e4b5058aa086a716f7215b8b4/nolearn_utils-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "fbc3e36a12106e975ed1874f70597900", "sha256": "2450bae28ae7372b09481f4fe5453269e18c15786d4b8d66a2bbc0e6de5848ec" }, "downloads": -1, "filename": "nolearn_utils-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fbc3e36a12106e975ed1874f70597900", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14578, "upload_time": "2017-07-03T22:51:26", "url": "https://files.pythonhosted.org/packages/80/06/3d17dd986e7d1c0a2ce030ce9a9a0233cc2577256a362e7bc2314ddf1ec5/nolearn_utils-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dc37455527c0dcdec20f029148aa4928", "sha256": "e4fe82bc7a06280abb022bcf8ae0cef89ea8175a7a852aaab8645c2792f9bd47" }, "downloads": -1, "filename": "nolearn_utils-0.3.1.tar.gz", "has_sig": false, "md5_digest": "dc37455527c0dcdec20f029148aa4928", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10429, "upload_time": "2017-07-03T22:51:28", "url": "https://files.pythonhosted.org/packages/3a/f9/81dbcb7ddb82f88e2e5c81782bf9286e56eeda31448838cf22b0f9b0b21a/nolearn_utils-0.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fbc3e36a12106e975ed1874f70597900", "sha256": "2450bae28ae7372b09481f4fe5453269e18c15786d4b8d66a2bbc0e6de5848ec" }, "downloads": -1, "filename": "nolearn_utils-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fbc3e36a12106e975ed1874f70597900", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14578, "upload_time": "2017-07-03T22:51:26", "url": "https://files.pythonhosted.org/packages/80/06/3d17dd986e7d1c0a2ce030ce9a9a0233cc2577256a362e7bc2314ddf1ec5/nolearn_utils-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dc37455527c0dcdec20f029148aa4928", "sha256": "e4fe82bc7a06280abb022bcf8ae0cef89ea8175a7a852aaab8645c2792f9bd47" }, "downloads": -1, "filename": "nolearn_utils-0.3.1.tar.gz", "has_sig": false, "md5_digest": "dc37455527c0dcdec20f029148aa4928", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10429, "upload_time": "2017-07-03T22:51:28", "url": "https://files.pythonhosted.org/packages/3a/f9/81dbcb7ddb82f88e2e5c81782bf9286e56eeda31448838cf22b0f9b0b21a/nolearn_utils-0.3.1.tar.gz" } ] }