{ "info": { "author": "romanjoffee", "author_email": "roman.jugai@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "|build-status| |coverage-status| |pypi-reference| |pypi-downloads|\n\nMelon\n=====\n\n| Melon is a lightweight package meant to simplify data processing for Deep Learning.\n\n| It removes the need for boilerplate code to pre-process the data prior to (model) training, testing and inference.\n| It aims at standardizing data serialization and manipulation approaches.\n|\n| The default formats align with the requirements by frameworks such as **Tensorflow** / **PyTorch** / **Keras**.\n| The tool also provides various level of customizations depending on the use-case.\n\nInstallation\n------------\n\nInstall and update using `pip`_:\n\n.. code-block:: text\n\n $ pip install melon\n\nSupported in Python >= 3.4.0\n\n.. _pip: https://pip.pypa.io/en/stable/quickstart/\n\nExamples\n----------------\n\n**Images**\n\nWith default options_:\n\n.. code-block:: python\n\n from melon import ImageReader\n\n def train():\n source_dir = \"resources/images\"\n reader = ImageReader(source_dir)\n X, Y = reader.read()\n ...\n with tf.Session() as s:\n s.run(..., feed_dict = {X_placeholder: X, Y_placeholder: Y})\n\n| ``source_dir`` directory should contain images that need to be read. See `sample directory`_ for reference.\n| In the sample directory there is an optional ``labels.txt`` file that is described in Labeling_.\n\n-------\n\nSince number of images may be too large to fit into memory the tool supports batch-processing.\n\n.. code-block:: python\n\n from melon import ImageReader\n\n def train():\n source_dir = \"resources/images\"\n options = { \"batch_size\": 32 }\n reader = ImageReader(source_dir, options)\n while reader.has_next():\n X, Y = reader.read()\n ...\n\n| This reads images in the batches of 32 until all images are read. If ``batch_size`` is not specified then ``reader.read()`` will read all images.\n\n---------------\n\n.. _Custom options:\n\nWith custom options_:\n\n.. code-block:: python\n\n from melon import ImageReader\n\n def train():\n source_dir = \"resources/images\"\n options = { \"data_format\": \"channels_last\", \"normalize\": False }\n reader = ImageReader(source_dir, options)\n ...\n\n| This changes format of data to ``channels-last`` (each sample will be ``Height x Width x Channel``) and doesn't normalize the data. See options_ for available options.\n\n.. _options:\n\nOptions\n------------------\n\n**Images**\n\n width\n Width of the output (pixels). default: ``255``\n\n height\n Height of the output (pixels). default: ``255``\n\n batch_size\n Batch size of each read. default: All images in a directory\n\n data_format\n Format of the images data\n\n | ``channels_first`` - `Channel x Height x Width` (default)\n | ``channels_last`` - `Height x Width x Channel`\n\n label_format\n Format of the labels data\n\n | ``one_hot`` - as a matrix, with one-hot vector per image (default)\n | ``label`` - as a vector, with a single label per image\n\n\n normalize\n Normalize data. default: ``True``\n\n num_threads - number of threads for parallel processing\n default: Number of cores of the machine\n\n.. _Labeling:\n\nLabeling\n-----------------\n\n| In supervised learning each image needs to be mapped to a label.\n| While the tool supports reading images without labels (e.g. for inference) it also provides a way to label them.\n\n-----\n\n**Generating labels file**\n\n| To generate ``labels`` file use the following command:\n\n.. code-block:: text\n\n $ melon generate\n > Source dir:\n\n| After providing source directory the tool will generate ``labels`` file in that directory with blank labels.\n| Final step is to add a label to each row in the generated file.\n|\n| For reference see `sample labels`_:\n\n.. code-block:: text\n\n #legend\n pedestrian:0\n cat:1\n parrot:2\n car:3\n apple tree:4\n\n #map\n img275.jpg:1\n img324.jpg:2\n img551.jpg:3\n img928.jpg:1\n img999.png:0\n img736.png:4\n\n| ``#legend`` section is optional but ``#map`` section is required to map a label to an image.\n\n-----\n\n**Format of the labels**\n\nLabel's output format can be specified in `Custom options`_. It defaults to ``one-hot`` format.\n\nRoadmap\n-------\n\n- Support for video data (Q1 2019)\n\n- Support for reading from AWS S3 (Q2 2019)\n\n\n\n.. |build-status| image:: https://travis-ci.com/romanjoffee/melon.svg?branch=master\n :target: https://travis-ci.com/romanjoffee/melon\n\n.. |coverage-status| image:: https://codecov.io/gh/romanjoffee/melon/branch/master/graphs/badge.svg\n :target: https://codecov.io/gh/romanjoffee/melon/branch/master\n\n.. |pypi-reference| image:: https://badge.fury.io/py/melon.svg\n :target: https://badge.fury.io/py/melon\n\n.. |pypi-downloads| image:: https://pepy.tech/badge/melon\n :target: https://pepy.tech/project/melon\n\n.. _`sample directory`: https://github.com/romanjoffee/melon/tree/master/tests/resources/images/sample\n\n.. _`sample labels`: https://github.com/romanjoffee/melon/tree/master/tests/resources/images/sample/labels.txt\n\n\n", "description_content_type": "text/x-rst; charset=UTF-8", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/romanjoffee/melon", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "melon", "package_url": "https://pypi.org/project/melon/", "platform": "", "project_url": "https://pypi.org/project/melon/", "project_urls": { "Homepage": "https://github.com/romanjoffee/melon" }, "release_url": "https://pypi.org/project/melon/0.1.2.1/", "requires_dist": [ "click (==7.0)", "tqdm (==4.29.0)", "pillow (==5.4.1)" ], "requires_python": "", "summary": "Lightweight package meant to simplify data processing for Deep Learning", "version": "0.1.2.1" }, "last_serial": 4969116, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "4b13c1cb132717a8bd35a2c2c27991bb", "sha256": "29bd05df0f73ee23961e193729ec743654124694a8c645bee7e954468ab10517" }, "downloads": -1, "filename": "melon-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4b13c1cb132717a8bd35a2c2c27991bb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2784, "upload_time": "2019-01-06T23:44:33", "url": "https://files.pythonhosted.org/packages/54/ae/62e139fbe42fe8368c18ca813b9ea0fb5e5bb6bb0c5c50a7e23ca92a40f6/melon-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dda9695ab4a64dca3d7a3241d1fcc953", "sha256": "7a3f56f0aa7f03d7bcf7bc002ccfa851526f8e183cc165f2a6ee0a638699d774" }, "downloads": -1, "filename": "melon-0.0.1.tar.gz", "has_sig": false, "md5_digest": "dda9695ab4a64dca3d7a3241d1fcc953", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2064, "upload_time": "2019-01-06T23:44:35", "url": "https://files.pythonhosted.org/packages/38/ca/ab21d9c928053008dddf824905501463ab7f67bfc9a9d8ec17225c834d46/melon-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "a983c886a0af90cdcf7f92f02c11d676", "sha256": "398a38286394a938879036a4e97f53a0abf0af8ab746d335844159dde8b6e5f7" }, "downloads": -1, "filename": "melon-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a983c886a0af90cdcf7f92f02c11d676", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5629, "upload_time": "2019-01-09T05:18:10", "url": "https://files.pythonhosted.org/packages/3e/12/20577f5dba48efe11693fa34b96e9cb2c7f75612c78af708aa68b5f410f9/melon-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e6d454835110022d9af6494658d44f53", "sha256": "e9a2512d4a6ad7a0e801a22b3b6b1b8c1895a9463649f10106f1cbf0150f7814" }, "downloads": -1, "filename": "melon-0.0.2.tar.gz", "has_sig": false, "md5_digest": "e6d454835110022d9af6494658d44f53", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3886, "upload_time": "2019-01-09T05:18:11", "url": "https://files.pythonhosted.org/packages/49/da/b74a58ad117b3098b445370967bfb444d7922a8b450f5f50d0421cdaf467/melon-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "f45f0d3ad1229e65ecd50f04475651ab", "sha256": "9e26660379574c3dfe229172a6b275227ebcd356a4f3bc297f8c0d6121ce6fa4" }, "downloads": -1, "filename": "melon-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "f45f0d3ad1229e65ecd50f04475651ab", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14976, "upload_time": "2019-01-13T22:48:58", "url": "https://files.pythonhosted.org/packages/d5/98/fa3f96e45b0d427aba035d2a6440652e6e545fe8a6229cae32a79d45e68d/melon-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ee0e8ff771eb86243ae4a16493c68c96", "sha256": "98c193cb50c6b6d9808a37eda47d73f1876defdc345cc545d8a8ad1f5a1a2a3a" }, "downloads": -1, "filename": "melon-0.0.3.tar.gz", "has_sig": false, "md5_digest": "ee0e8ff771eb86243ae4a16493c68c96", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7732, "upload_time": "2019-01-13T22:49:00", "url": "https://files.pythonhosted.org/packages/cf/b1/aaed78a811e2316d5d6fb8a509577a7a74791396671f5e26282ddc6300ba/melon-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "336a511de04bb84aa2766d1d07143750", "sha256": "6ed1be9a6b5caf1c6bf11e40a9040dd708409bcf6a4e3a62f710e83893996e53" }, "downloads": -1, "filename": "melon-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "336a511de04bb84aa2766d1d07143750", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17206, "upload_time": "2019-01-13T22:51:41", "url": "https://files.pythonhosted.org/packages/95/85/37eabbc161e28edbc734b80b1455c6fd28d52f96bfb59887063faf051846/melon-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e6e75bde7f70acc54f02bb074cf13387", "sha256": "9c97f62de228ede6e2c1a6463af25703d668a0242f6f6fe7b15c8228518526b1" }, "downloads": -1, "filename": "melon-0.0.4.tar.gz", "has_sig": false, "md5_digest": "e6e75bde7f70acc54f02bb074cf13387", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7736, "upload_time": "2019-01-13T22:51:42", "url": "https://files.pythonhosted.org/packages/d1/25/5707d2a856b7cebd84284cbd397a6ecc46ada60f6d422a0e7918ac12123d/melon-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "d7ff70a53e9155a78d2c0338e0e118ea", "sha256": "8e6b5ec8a117803734dc7eb619b554c8a0e468776510203a7b9d12b0b1d7f594" }, "downloads": -1, "filename": "melon-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "d7ff70a53e9155a78d2c0338e0e118ea", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14976, "upload_time": "2019-01-13T23:01:15", "url": "https://files.pythonhosted.org/packages/b9/90/e9e032e7fef5fabf6823c67f910e86f07dfd7c327d97bb7aca4d5ee520f5/melon-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "acf3cf472ff892d4c122d14292306771", "sha256": "bdbcc23d80aadbef5c37d397a601a8ecba9da918a4191e2c64f533573f9dde3b" }, "downloads": -1, "filename": "melon-0.0.5.tar.gz", "has_sig": false, "md5_digest": "acf3cf472ff892d4c122d14292306771", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7734, "upload_time": "2019-01-13T23:01:16", "url": "https://files.pythonhosted.org/packages/44/d0/505d32f00b85f87b66dd0511755a8928947bf6744b167c6d5aab46c053e9/melon-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "a71e8a418be692ef685fefd1a4ba30a1", "sha256": "fff316ad4f54611fe78673644c10fae798b7b7d61950f4e665e968963a366189" }, "downloads": -1, "filename": "melon-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "a71e8a418be692ef685fefd1a4ba30a1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14993, "upload_time": "2019-01-13T23:19:28", "url": "https://files.pythonhosted.org/packages/93/af/3ad5023ee63761d051dcfb5a952b58b190af8c00b440b034b2e4dad0c9c4/melon-0.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5e24cd325b66806b486993c66c24ff18", "sha256": "0401863f9900d1b80c4a5b89e9c87eb79c720585f74223d6eafa0e7d8672ad1e" }, "downloads": -1, "filename": "melon-0.0.6.tar.gz", "has_sig": false, "md5_digest": "5e24cd325b66806b486993c66c24ff18", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7732, "upload_time": "2019-01-13T23:19:29", "url": "https://files.pythonhosted.org/packages/55/68/0380b173b5e35575c7bf23c4cea928bf4f6f33a140d9a44d85bb48500c85/melon-0.0.6.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "a30816b19335f02c8f947876789135cd", "sha256": "f3a27555f5bb561305f26a28fbec3a3d6dd6ebc41f6cfeca77e01c2dbb05d005" }, "downloads": -1, "filename": "melon-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a30816b19335f02c8f947876789135cd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15055, "upload_time": "2019-01-14T00:10:10", "url": "https://files.pythonhosted.org/packages/68/1b/2e37d9a353c1cee9354cc01ff80e955efe17926ab69c526696e912fd2240/melon-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "173abcb3dea2dff53b206df970bf5afb", "sha256": "3fcca43f39eff975d06867b04d6d224deb2eedaf8996bf92c2c11b28e9343afb" }, "downloads": -1, "filename": "melon-0.1.0.tar.gz", "has_sig": false, "md5_digest": "173abcb3dea2dff53b206df970bf5afb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7812, "upload_time": "2019-01-14T00:10:12", "url": "https://files.pythonhosted.org/packages/09/91/4616f346a074f94405a7c55b3cec57b8185316a8b4975f440b52cfb56785/melon-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "0d79f560c95c0a238c0d93644c1172b8", "sha256": "a54bbc11cd4037c19c43a37e3468d7c7c6c8a11c4e6af1b4e56eca511f89e23b" }, "downloads": -1, "filename": "melon-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0d79f560c95c0a238c0d93644c1172b8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15011, "upload_time": "2019-01-14T00:15:59", "url": "https://files.pythonhosted.org/packages/51/38/207bb72529da1af63313febd560cbda0790f10effeb9e34cae5be62b510f/melon-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "04fa87ddeaba4efd8bf06b7abf048ff3", "sha256": "d8bcac633ca5880cb33849b91165bc559ee07f788c844d2f432f6c6100d03a6f" }, "downloads": -1, "filename": "melon-0.1.1.tar.gz", "has_sig": false, "md5_digest": "04fa87ddeaba4efd8bf06b7abf048ff3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7762, "upload_time": "2019-01-14T00:16:01", "url": "https://files.pythonhosted.org/packages/b8/fc/bd35cf257af2001486744d874f7bb320866daa084f1bbb868cbeb8bf20a4/melon-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "a7767f7090446d080d77b4c5a306ee6d", "sha256": "c68a6e890cbcf6026507f48f38165e106a7835ed36a3b407be8e6045b6f92dc5" }, "downloads": -1, "filename": "melon-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a7767f7090446d080d77b4c5a306ee6d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15808, "upload_time": "2019-01-14T17:35:48", "url": "https://files.pythonhosted.org/packages/f7/65/0695d6f77b637790ed87dab22a122a73e936becf846e44c2c22e36de655e/melon-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f5bb6b335a1ba1ee1973f0e515e9c0bb", "sha256": "726154beeacd3f3d3185ca583898ce7a4cf59a228b63d6c703002f34016f0825" }, "downloads": -1, "filename": "melon-0.1.2.tar.gz", "has_sig": false, "md5_digest": "f5bb6b335a1ba1ee1973f0e515e9c0bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8275, "upload_time": "2019-01-14T17:35:50", "url": "https://files.pythonhosted.org/packages/0e/40/1a41a7a6a44e4c4d838ddc0f39b1c5e12eead764729ece179a1c81a14b46/melon-0.1.2.tar.gz" } ], "0.1.2.1": [ { "comment_text": "", "digests": { "md5": "b4f6e0b404f2bbeac54bb8b2b93f413d", "sha256": "faab1df00c249a6f8a4f2180af041f808a506bb2015a0cbefd867494b90958eb" }, "downloads": -1, "filename": "melon-0.1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b4f6e0b404f2bbeac54bb8b2b93f413d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16503, "upload_time": "2019-03-21T17:15:45", "url": "https://files.pythonhosted.org/packages/e4/bb/5b777e4aacb73c0304a08253328b6d3117ad9697b0438010137c3564353a/melon-0.1.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6f3771db540019c73092d484e5ac6ce4", "sha256": "061acb12ad3cbf629c720f667d5d7ab66690dd27e0bc46b33a2003e9bc0a4eee" }, "downloads": -1, "filename": "melon-0.1.2.1.tar.gz", "has_sig": false, "md5_digest": "6f3771db540019c73092d484e5ac6ce4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8526, "upload_time": "2019-03-21T17:15:47", "url": "https://files.pythonhosted.org/packages/3e/76/54c0eb0679926caa5227c71f16465b554b6e3e6318b70f094383400ea100/melon-0.1.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b4f6e0b404f2bbeac54bb8b2b93f413d", "sha256": "faab1df00c249a6f8a4f2180af041f808a506bb2015a0cbefd867494b90958eb" }, "downloads": -1, "filename": "melon-0.1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b4f6e0b404f2bbeac54bb8b2b93f413d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16503, "upload_time": "2019-03-21T17:15:45", "url": "https://files.pythonhosted.org/packages/e4/bb/5b777e4aacb73c0304a08253328b6d3117ad9697b0438010137c3564353a/melon-0.1.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6f3771db540019c73092d484e5ac6ce4", "sha256": "061acb12ad3cbf629c720f667d5d7ab66690dd27e0bc46b33a2003e9bc0a4eee" }, "downloads": -1, "filename": "melon-0.1.2.1.tar.gz", "has_sig": false, "md5_digest": "6f3771db540019c73092d484e5ac6ce4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8526, "upload_time": "2019-03-21T17:15:47", "url": "https://files.pythonhosted.org/packages/3e/76/54c0eb0679926caa5227c71f16465b554b6e3e6318b70f094383400ea100/melon-0.1.2.1.tar.gz" } ] }