{ "info": { "author": "Victor K\u00fcnstler", "author_email": "victor.kuenstler@outlook.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# torchtrainer\n\n\nPyTorch model training made simpler without loosing control. Focus on optimizing your model! Concepts are heavily inspired by the awesome project [torchsample](https://github.com/ncullen93/torchsample) and [Keras](https://github.com/keras-team/keras).\nFurther, besides applying Epoch Callbacks it also allows to call Callbacks every time after a specific number of batches passed (iterations) for long epoch durations.\n\n[![Build Status](https://travis-ci.com/VictorKuenstler/torchtrainer.svg?branch=master)](https://travis-ci.com/VictorKuenstler/torchtrainer)\n[![codecov](https://codecov.io/gh/VictorKuenstler/torchtrainer/branch/master/graph/badge.svg)](https://codecov.io/gh/VictorKuenstler/torchtrainer)\n\n## Features\n\n* `Torchtrainer`\n* Logging utilities\n* Metrics\n* Visdom Visualization\n* Learning Rate Scheduler\n* Checkpointing\n* Flexible for muliple data inputs\n* Setup validation after every ... batches\n\n## Usage\n\n### Installation\n\n```bash\npip install torchtrainer\n```\n\n\n### Example\n\n```python\nfrom torch import nn\nfrom torch.optim import SGD\nfrom torchtrainer import TorchTrainer\nfrom torchtrainer.callbacks import VisdomLinePlotter, ProgressBar, VisdomEpoch, Checkpoint, CSVLogger, \\\n EarlyStoppingEpoch, ReduceLROnPlateauCallback\nfrom torchtrainer.metrics import BinaryAccuracy\n\n\nmetrics = [BinaryAccuracy()]\n\ntrain_loader = ...\nval_loader = ...\n\nmodel = ...\nloss = nn.BCELoss()\noptimizer = SGD(model.parameters(), lr=0.001, momentum=0.9)\n\n# Setup Visdom Environment for your modl\nplotter = VisdomLinePlotter(env_name=f'Model {11}')\n\n\n# Setup the callbacks of your choice\n\ncallbacks = [\n ProgressBar(log_every=10),\n VisdomEpoch(plotter, on_iteration_every=10),\n VisdomEpoch(plotter, on_iteration_every=10, monitor='binary_acc'),\n CSVLogger('test.csv'),\n Checkpoint('./model'),\n EarlyStoppingEpoch(min_delta=0.1, monitor='val_running_loss', patience=10),\n ReduceLROnPlateauCallback(factor=0.1, threshold=0.1, patience=2, verbose=True)\n]\n\ntrainer = TorchTrainer(model)\n\n# function to transform batch into inputs to your model and y_true values\n# if your model accepts multiple inputs, just put all inputs into a tuple (input1, input2), y_true\ndef transform_fn(batch):\n inputs, y_true = batch\n return inputs, y_true.float()\n\n# prepare your trainer for training\ntrainer.prepare(optimizer,\n loss,\n train_loader,\n val_loader,\n transform_fn=transform_fn,\n callbacks=callbacks,\n metrics=metrics)\n\n# train your model\nresult = trainer.train(epochs=10, batch_size=10)\n\n``` \n\n\n### Callbacks\n\n#### Logger\n\n* `CSVLogger`\n* `CSVLoggerIteration`\n* `ProgressBar`\n\n#### Visualization and Logging\n\n* `VisdomEpoch`\n\n#### Optimizers\n\n* `ReduceLROnPlateauCallback`\n* `StepLRCallback`\n\n#### Regularization\n\n* `EarlyStoppingEpoch`\n* `EarlyStoppingIteration`\n\n#### Checkpointing\n\n* `Checkpoint`\n* `CheckpointIteration`\n\n### Metrics\n\nCurrently only `BinaryAccuracy` is implemented. To implement other Metrics use the abstract base metric class `torchtrainer.metrics.metric.Metric`. \n\n## TODO\n\n- more tests\n- metrics\n\n\n## \n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/VictorKuenstler/torchtrainer", "keywords": "", "license": "MIT", "maintainer": "Victor K\u00fcnstler", "maintainer_email": "victor.kuenstler@outlook.com", "name": "torchtrainer", "package_url": "https://pypi.org/project/torchtrainer/", "platform": "", "project_url": "https://pypi.org/project/torchtrainer/", "project_urls": { "Homepage": "https://github.com/VictorKuenstler/torchtrainer" }, "release_url": "https://pypi.org/project/torchtrainer/0.3.9/", "requires_dist": [ "torch (>=1.2,<2.0)", "torchvision (>=0.4.0,<0.5.0)", "visdom (>=0.1.8,<0.2.0)", "tqdm (>=4.33,<5.0)" ], "requires_python": ">=3.6,<4.0", "summary": "Focus on building and optimizing pytorch models not on training loops", "version": "0.3.9" }, "last_serial": 5743380, "releases": { "0.2": [ { "comment_text": "", "digests": { "md5": "fc979152a98c602cca741d39dd56359b", "sha256": "ba98aa2c62fa306b68a3e555a02f6f22198b20ea41baf1be759d266a1b37ecfd" }, "downloads": -1, "filename": "torchtrainer-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "fc979152a98c602cca741d39dd56359b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 13251, "upload_time": "2019-08-18T12:07:06", "url": "https://files.pythonhosted.org/packages/75/11/564f6179abc6fbb257c04a01db12de959fbde1b463d34564f626fbf2a2f7/torchtrainer-0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e86bd9da6a178ac183a0783990077312", "sha256": "284e1bf2dc7e359be8203e1a2daa3976cb4adb0497997a80b7bdcd7bb698eb49" }, "downloads": -1, "filename": "torchtrainer-0.2.tar.gz", "has_sig": false, "md5_digest": "e86bd9da6a178ac183a0783990077312", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 8515, "upload_time": "2019-08-18T12:07:08", "url": "https://files.pythonhosted.org/packages/35/c3/15016c7657ca426e15cba82df92d870ee6a54c07d5c47d25bdf53355375b/torchtrainer-0.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "45d9e676c0c4cfa64fd62972ec889bff", "sha256": "52ba37f4c3c3c1533515702c33631d5c2d44a79d37a31f5bef38f0a6e69d484d" }, "downloads": -1, "filename": "torchtrainer-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "45d9e676c0c4cfa64fd62972ec889bff", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 13784, "upload_time": "2019-08-18T12:35:01", "url": "https://files.pythonhosted.org/packages/b9/4f/c8012c7b6eb56a08d67a33fbb236809685e95fe61ef47c173f6d9dbe9c70/torchtrainer-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "28f0ce2f4d11f23979025481efbceb1f", "sha256": "3717c9a9a61df7fe5495e64bb6a74cdb9405553252da7135c4a93e338ed067c7" }, "downloads": -1, "filename": "torchtrainer-0.2.3.tar.gz", "has_sig": false, "md5_digest": "28f0ce2f4d11f23979025481efbceb1f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 10027, "upload_time": "2019-08-18T12:35:03", "url": "https://files.pythonhosted.org/packages/ed/4d/87893162bdb000420f44ab89f34bb45e7e8d264e1e8816d3aa2600346440/torchtrainer-0.2.3.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "ac9f2f2d7ef5fee108fcb119702d375e", "sha256": "f3e6689a8508037ae94c9c0d83a802eada03e3498baba8280a812b93e59c98b7" }, "downloads": -1, "filename": "torchtrainer-0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "ac9f2f2d7ef5fee108fcb119702d375e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 13767, "upload_time": "2019-08-18T12:39:19", "url": "https://files.pythonhosted.org/packages/8c/17/fd55985e31148d9dad5377c1f04d6271c595475713114b5a977df334987e/torchtrainer-0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "47d806a0ff849e91d0d1e958f0d38616", "sha256": "2bc9b3ea943b6ff22c3f389557ddbd58758b39b2f9579f3fdce54ecbc7bca467" }, "downloads": -1, "filename": "torchtrainer-0.3.tar.gz", "has_sig": false, "md5_digest": "47d806a0ff849e91d0d1e958f0d38616", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 10018, "upload_time": "2019-08-18T12:39:20", "url": "https://files.pythonhosted.org/packages/26/61/579a18841bd5551e473a9049f61fdb636417e7080c3383c20a568b377633/torchtrainer-0.3.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "3e77a1379b518980d14142b36976d661", "sha256": "a20f557669dac88c3ef85a1778353ea2ea27f767ff7f7a1226e8ccf629e91fae" }, "downloads": -1, "filename": "torchtrainer-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3e77a1379b518980d14142b36976d661", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 13793, "upload_time": "2019-08-18T12:49:55", "url": "https://files.pythonhosted.org/packages/83/bf/3913f1febae2b7ae86a83235a407c505907e9a02b690123c8f099f9b40b6/torchtrainer-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1657d8370b210b9d6a28c90a902abd41", "sha256": "74c3e986234dfd254976989b3efe0783510cae895bf5f0b6d49a67c75943bfe9" }, "downloads": -1, "filename": "torchtrainer-0.3.1.tar.gz", "has_sig": false, "md5_digest": "1657d8370b210b9d6a28c90a902abd41", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 10020, "upload_time": "2019-08-18T12:49:57", "url": "https://files.pythonhosted.org/packages/aa/48/6b803d6083e7ccb24f0d1fb892aa1b4a922123d6675b18c882fe7ac88a9e/torchtrainer-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "ff7447612093374089e04586728010d4", "sha256": "1eb84de64e671a1b544c4f700b76f832240141ad98eb38f14b972671625bbd7f" }, "downloads": -1, "filename": "torchtrainer-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ff7447612093374089e04586728010d4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 13996, "upload_time": "2019-08-18T13:11:18", "url": "https://files.pythonhosted.org/packages/d5/1f/02b12996a19edc553140be891e0858e5fb95a5d31c2ec29309ddc3134f2f/torchtrainer-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "91115ff7589757d1c61e7f0931db48a5", "sha256": "f162aff1f46c93b401f4ca0315630a2a52d3a0a53a95a1a09645092161805015" }, "downloads": -1, "filename": "torchtrainer-0.3.2.tar.gz", "has_sig": false, "md5_digest": "91115ff7589757d1c61e7f0931db48a5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 10103, "upload_time": "2019-08-18T13:11:20", "url": "https://files.pythonhosted.org/packages/ae/ec/b9ecd49a7edfe8b791f67793d9ea305ee93789cf86f06dd2bc2828a972b0/torchtrainer-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "7e9560add40fe4048c95cea0084149e6", "sha256": "8a281b9f18e48b9a42fc0d25d538c6e3863ae32982ac3d1876bee4abb952fb25" }, "downloads": -1, "filename": "torchtrainer-0.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "7e9560add40fe4048c95cea0084149e6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 14088, "upload_time": "2019-08-18T13:39:13", "url": "https://files.pythonhosted.org/packages/11/5e/d9899278d92f2b82a3d5d329232be4d6cdf44ceda67347b3b75fe52e2d94/torchtrainer-0.3.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fc6c19f72e661b77f005ca33822d8948", "sha256": "1edf4f2dbb39ea688c203bb54daede2ccdb2a0e9af0850cdf36f82c6f3401324" }, "downloads": -1, "filename": "torchtrainer-0.3.3.tar.gz", "has_sig": false, "md5_digest": "fc6c19f72e661b77f005ca33822d8948", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 10101, "upload_time": "2019-08-18T13:39:14", "url": "https://files.pythonhosted.org/packages/bb/a5/4c6b24497bba8ced3d88a90179217e83a6f8d96b6e6dd96128e27e0ed876/torchtrainer-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "2d2904b1fefb9fe861952728abb58ebc", "sha256": "bf4bf17d0a251e423281bb42f17d35072b4184659b0b6b9c37045450f2f760b7" }, "downloads": -1, "filename": "torchtrainer-0.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "2d2904b1fefb9fe861952728abb58ebc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 14125, "upload_time": "2019-08-19T05:44:30", "url": "https://files.pythonhosted.org/packages/ac/0b/9a51c930c47e6c4239aff04144795b1bb27f01ce1951489dec8218ba2081/torchtrainer-0.3.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "edf1242cb443d0552f5edc38db721855", "sha256": "cf97db6298979101a58dcb8e14f2f61e56e6f97f74c11b026d282a13eaeb62bf" }, "downloads": -1, "filename": "torchtrainer-0.3.4.tar.gz", "has_sig": false, "md5_digest": "edf1242cb443d0552f5edc38db721855", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 10163, "upload_time": "2019-08-19T05:44:31", "url": "https://files.pythonhosted.org/packages/10/97/8cba31f8625e827aac21e0b4fbe373ccecf9dbf5a4b25b8584c94da81467/torchtrainer-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "8ce908a658bdd535e1654feed02f9e30", "sha256": "cf6295d1ab0b471d5e15037f0f62a420cad5a070fa30b9ecf2357195c37f60bc" }, "downloads": -1, "filename": "torchtrainer-0.3.5-py3-none-any.whl", "has_sig": false, "md5_digest": "8ce908a658bdd535e1654feed02f9e30", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 14436, "upload_time": "2019-08-19T06:00:17", "url": "https://files.pythonhosted.org/packages/87/4d/cb513435d1c615ac612ef3258d8ea9ab981e862c28b66dcfb1c9365ced64/torchtrainer-0.3.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "557c543cf99a16a384ef175fb33142f0", "sha256": "96d09222d5f1581a56c7087bdefeb535d305fea6158d81bcac8b7c7c94a3a2bc" }, "downloads": -1, "filename": "torchtrainer-0.3.5.tar.gz", "has_sig": false, "md5_digest": "557c543cf99a16a384ef175fb33142f0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 10905, "upload_time": "2019-08-19T06:00:19", "url": "https://files.pythonhosted.org/packages/76/96/45be889efe7e7e1497c114e2a16d12f8cdd90ff15e58d792fb2c477d4a01/torchtrainer-0.3.5.tar.gz" } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "a35a53240766f56fa7bc2fac1712dc1a", "sha256": "79160d6f6c3104d263876b1e8a331f8f7caf42513f90a2116403f7fbdd5b5ac2" }, "downloads": -1, "filename": "torchtrainer-0.3.6-py3-none-any.whl", "has_sig": false, "md5_digest": "a35a53240766f56fa7bc2fac1712dc1a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 14488, "upload_time": "2019-08-20T15:11:18", "url": "https://files.pythonhosted.org/packages/fb/fe/6785a0b805bf03bd128fec56a6b1432af6761448832aa26d758b0b4c12e4/torchtrainer-0.3.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "73e42cb1b5c5439a28b69f50543d282b", "sha256": "3dc2f5f0fad2abdd7049d1fad47867ea77941458c3721d3f5e4ab69b36f05af1" }, "downloads": -1, "filename": "torchtrainer-0.3.6.tar.gz", "has_sig": false, "md5_digest": "73e42cb1b5c5439a28b69f50543d282b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 10967, "upload_time": "2019-08-20T15:11:20", "url": "https://files.pythonhosted.org/packages/e1/ae/908964de398af7379b3992a9f13fef44ae2b15ece5c68faf5ef1765029f6/torchtrainer-0.3.6.tar.gz" } ], "0.3.7": [ { "comment_text": "", "digests": { "md5": "70c283df89d13568648bc13e4dd0df11", "sha256": "394d125e1ef582a9439cbd30ca794868ba8ab934682d64001821e6ddc0efb46f" }, "downloads": -1, "filename": "torchtrainer-0.3.7-py3-none-any.whl", "has_sig": false, "md5_digest": "70c283df89d13568648bc13e4dd0df11", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 14496, "upload_time": "2019-08-20T15:22:05", "url": "https://files.pythonhosted.org/packages/7b/f9/71048024f52391756f7c50890c720e88ef16ed8d7a85523da49c0f88cc2a/torchtrainer-0.3.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d748ce00d5b384321bb00d6b39d3b683", "sha256": "ae45eb41e7a937812bc1416bd152b0067a47ace592cd37b7e374f41fbb5420e1" }, "downloads": -1, "filename": "torchtrainer-0.3.7.tar.gz", "has_sig": false, "md5_digest": "d748ce00d5b384321bb00d6b39d3b683", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 10982, "upload_time": "2019-08-20T15:22:07", "url": "https://files.pythonhosted.org/packages/a0/b7/b382fe23938d60412f03a11ddd154ceb4e15d24fc5f0d9d32fc0042cce16/torchtrainer-0.3.7.tar.gz" } ], "0.3.8": [ { "comment_text": "", "digests": { "md5": "e78e61d40412fc5ec711483e9949bf32", "sha256": "db464ded6418ef3819fdd615de23d6cd3b90617f7c81d18eb3ab8f580ba95350" }, "downloads": -1, "filename": "torchtrainer-0.3.8-py3-none-any.whl", "has_sig": false, "md5_digest": "e78e61d40412fc5ec711483e9949bf32", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 14511, "upload_time": "2019-08-21T09:28:06", "url": "https://files.pythonhosted.org/packages/c5/56/9df62225c3a5d50e8efdfff056b953bfc5cffd8ae55b69a7309ce278114f/torchtrainer-0.3.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "18607eed4bf5e0ce69710ff49fc7e46f", "sha256": "8cec7d1a9773a4901386b37991fbf38f0987e6c35e4728246e4fd44d352ef17a" }, "downloads": -1, "filename": "torchtrainer-0.3.8.tar.gz", "has_sig": false, "md5_digest": "18607eed4bf5e0ce69710ff49fc7e46f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 11005, "upload_time": "2019-08-21T09:28:08", "url": "https://files.pythonhosted.org/packages/0c/48/7de17003963192229b78a13b99643bc0c21df8afc75b0f301549f621be40/torchtrainer-0.3.8.tar.gz" } ], "0.3.9": [ { "comment_text": "", "digests": { "md5": "937036b2dfbff0fb3f7051d713866a01", "sha256": "73c190c26037e4876c24d9bb20b930423c73f964bf711632861e7b3354a9feaf" }, "downloads": -1, "filename": "torchtrainer-0.3.9-py3-none-any.whl", "has_sig": false, "md5_digest": "937036b2dfbff0fb3f7051d713866a01", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 14456, "upload_time": "2019-08-28T15:35:35", "url": "https://files.pythonhosted.org/packages/0f/f2/dfd32580bed08a4dd01c4d1d9b6f95fef5d9041f0a975d3bdb1f2f1150e5/torchtrainer-0.3.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "90f67f88bad058690c59194472d5c13a", "sha256": "047cbbf7d92b9d7759666dead1e2847ef6c1ffe142fd9d57764bbde74e62ee4a" }, "downloads": -1, "filename": "torchtrainer-0.3.9.tar.gz", "has_sig": false, "md5_digest": "90f67f88bad058690c59194472d5c13a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 10969, "upload_time": "2019-08-28T15:35:36", "url": "https://files.pythonhosted.org/packages/bf/f9/eb04c322b7d8aaa30083f484b767ddc06594f9f06a02eaeadb71254e3d21/torchtrainer-0.3.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "937036b2dfbff0fb3f7051d713866a01", "sha256": "73c190c26037e4876c24d9bb20b930423c73f964bf711632861e7b3354a9feaf" }, "downloads": -1, "filename": "torchtrainer-0.3.9-py3-none-any.whl", "has_sig": false, "md5_digest": "937036b2dfbff0fb3f7051d713866a01", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 14456, "upload_time": "2019-08-28T15:35:35", "url": "https://files.pythonhosted.org/packages/0f/f2/dfd32580bed08a4dd01c4d1d9b6f95fef5d9041f0a975d3bdb1f2f1150e5/torchtrainer-0.3.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "90f67f88bad058690c59194472d5c13a", "sha256": "047cbbf7d92b9d7759666dead1e2847ef6c1ffe142fd9d57764bbde74e62ee4a" }, "downloads": -1, "filename": "torchtrainer-0.3.9.tar.gz", "has_sig": false, "md5_digest": "90f67f88bad058690c59194472d5c13a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 10969, "upload_time": "2019-08-28T15:35:36", "url": "https://files.pythonhosted.org/packages/bf/f9/eb04c322b7d8aaa30083f484b767ddc06594f9f06a02eaeadb71254e3d21/torchtrainer-0.3.9.tar.gz" } ] }