{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [], "description": "# META Learn\n\n**M**etaRL-based **E**stimator using **T**ask-encodings for\n**A**utomated machine **Learn**ing\n\n**META Learn** is a deep learning approach to automated machine learning that\nparameterizes the API of machine learning software as a sequence of actions to\nselect the hyperparameters of a machine learning pipeline in an end-to-end\nfashion, from raw data representation, imputation, normalizing, feature\nrepresentation, and classification/regression. Currently the\n[sklearn API][sklearn] is the only supported ML framework.\n\n\n# Why?\n\nAs the diversity of data and machine learning use cases increases, we need\nto accelerate and scale the process of training performant machine learning\nsystems. We'll need tools that are adaptable to specific problem domains,\ndatasets, and the (sometimes non-differentiable) performance metrics that we're\ntrying to optimize. Supervised learning of classification and regression tasks\ngiven a task distribution of small to medium datasets provides an promising\njumping off platform for programmatically generating a reinforcement learning\nenvironment for automated machine learning (AutoML).\n\n\n# Installation\n\ninstall `metalearn` library:\n```\npip install -e .\n```\n\nthen you can run an experiment with the `metalearn` cli.\n\n```\n# run an experiment with default values\n$ metalearn run experiment\n```\n\n## Running an experiment with a configuration file\n\nAlternatively, you can create an experiment configuration file to run\nyour experiment.\n\n```\n# create experiment config file\n$ metalearn create config my_experiment config/local --description \"my experiment\"\n\n# output:\n# wrote experiment config file to config/local/experiment_2018-37-25-21:37:11_my_experiment.yml\n```\n\n\nedit the config file `parameters` section to the set of parameters\nthat you want to train on, then run the experiment with\n\n```\n$ metalearn run from-config config/local/experiment_2018-37-25-21:37:11_my_experiment.yml\n```\n\n\n# Relevant Work\n\nThe Combined Algorithm Selection and Hyperparameter optimization\n([CASH][autosklearn]) problem is an important one to solve if we want to\neffectively scale and deploy machine learning systems in real-world use cases,\nwhich often deals with small (< 10 gb) to medium size (10 - 100 gb) data.\n\nCASH is the problem of searching through the space of all ML frameworks,\ndefined as an Algorithm `A` and a set of relevant hyperparameters `lambda`\nand proposing a set of models that will perform well given a dataset and\na task.\n\nIn order to solve this problem, previous work like [autosklearn][autosklearn]\nuses a Bayesian Optimization techniques [SMAC][smac] with an offline meta-\nlearning \"warm-start\" step using euclidean distance to reduce the search space\nof ML frameworks. This meta-learning step was done by representing the datasets\nwith metadata features (e.g. number of features, skew, mean, variance, etc.) to\nlearn representations of the data space that perform well with respect to the ML\nframework selection task.\n\n[Neural Architecture Search][neuralarchsearch] is another approach to the CASH\nproblem, where a Controller network proposes \"child\" neural net architectures\nthat are trained on a training set and evaluated on a validation set, using the\nvalidation performance `R` as a reinforcement learning reward signal to learn\nthe best architecture proposal policy.\n\n\n# Contributions\n\nThe contributions of the META Learn project are two-fold: it builds on the neural\narchitecture search paradigm by formalating the output space of the Controller\nas a sequence of tokens conditioned on the space of possible executable\n`frameworks`. The scope of this project is to define a `framework`, expressed\nas a set of hyperparameters, that can be evaluated by a machine learning\nframework, like sklearn, which evaluates to an instantiated sklearn\n[`Pipeline`][sklearn-pipeline]. Once defined, it can be fitted on a training\nset and evaluated on a validation set of a particular dataset `D`.\n\nFollowing the Neural Architecture scheme, META Learn uses the REINFORCE algorithm\nto compute the policy gradient used to update the Controller in order to learn a\npolicy for proposing good `frameworks` that are able to achieve high validation\nset performance.\n\nThe second contribution of this project is that it proposes a conditional\nML `framework` generator by extending the Controller network to have an `encoder`\nnetwork that takes as input metadata about the dataset `D` (e.g. number of\ninstances, number of features). The output of the `encoder` network would be\nfed into the `decoder` network, which proposes an ML `framework`. Therefore,\nwe can condition the output of the `decoder` network metadata on `D` to propose\ncustomized `frameworks`.\n\n\n# Training Algorithm\n\nThe environment is a distribution of `k` supervised learning tasks, consisting\nof a pair `(X, y)` of features and targets, respectively. At the beginning of\nan episode, the environment samples one task and for `i` iterations produces\nsample splits `(X_train, y_train, X_validation, y_validation)` drawn from the\ntask dataset.\n\nThe `MetaLearnController` receives the current task state `s` via metafeatures\nassociated the task, e.g. _# of training samples_, _# of features_,\n_target type_, _#of continuous features_, _#of categorical features_, etc.\n\nGiven the task state, the controller generates ML `frameworks` over a state\nspace of algorithms and hyperparameter values. The controller can be viewed as a\npolicy approximator, which selects actions based on some pre-defined\n`AlgorithmSpace`, representated as a direct acyclic graph where each node\ncontains a set of hyperparameter values to choose from. The controller traverses\nthis graph via a sequential decoder by selecting hyperparameters via softmax\nclassifiers, where certain actions may remove certain edges from the graph.\nThis enforces incompatible hyperparameter configurations.\n\nFor example, the algorithm space for a possible `sklearn` pipeline would\nconsist of the following components:\n\n- categorical encoder (e.g. OneHotEncoder)\n- categorical encoder hyperparameters\n- imputer (e.g. SimpleImputer)\n- imputer hyperparameters\n- rescaler (e.g. StandardScaler)\n- rescaler hyperparameters\n- feature processor (e.g. PCA)\n- feature processor hyperparameters\n- classifier/regressor (e.g. LogisticRegression, LinearRegression)\n- classifier/regressor hyperparameters\n\nWhen the controller reaches a terminal node in algorithm space, the environment\nevalutes the selected ML `framework` and produces a validation score that the\ncontroller uses as a reward signal. Validation performance is calibrated such\nthat a better score produces higher rewards. Using the REINFORCE policy\ngradient method, the controller tries to find the optimal policy that\nmaximizes validation performance over the task distribution.\n\n\n# Analyses\n\nThe `./analysis` subfolder contains jupyter notebooks that visualize the\nperformance of the cash controller over time. Currently there are 5 analyses\nin the project `analysis` subfolder:\n- `rnn_metalearn_controller_experiment_analysis.ipynb`: analyzing the output of\n running `examples/example_rnn_metalearn_controller.py` with static plots.\n- `metalearn_controller_analysis.ipynb`: a basic interactive analysis\n of a single job's outputs.\n- `metalearn_controller_multi_experiment_analysis.ipynb`: analyzes multiple\n job outputs, all assumed to have one trial (training run) per job.\n- `metalearn_controller_multi_trail_analysis.ipynb`: analyzes the\n output of one job, but that job has multiple trials.\n- `metalearn_controller_multi_trial_experiment_analysis.ipynb`: analyzes\n the output of multiple jobs, each with multiple trials.\n\n\n[neuralarchsearch]: https://arxiv.org/abs/1611.01578\n[apricot]: https://github.com/jmschrei/apricot\n[autosklearn]: papers.nips.cc/paper/5872-efficient-and-robust-automated-machine-learning.pdf\n[autosklearn-package]: https://automl.github.io/auto-sklearn/stable/\n[autosklearn-supp]: http://ml.informatik.uni-freiburg.de/papers/15-NIPS-auto-sklearn-supplementary.pdf\n[meta-rl]: https://arxiv.org/pdf/1611.05763.pdf\n[smac]: https://www.cs.ubc.ca/~hutter/papers/10-TR-SMAC.pdf\n[gan-imputation]: http://proceedings.mlr.press/v80/yoon18a.html\n[gru]: https://arxiv.org/pdf/1406.1078.pdf\n[reinforce]: https://www.quora.com/What-is-the-REINFORCE-algorithm\n[tpot]: https://github.com/EpistasisLab/tpot\n[h20]: http://docs.h2o.ai/h2o/latest-stable/h2o-docs/automl.html\n[openml]: https://www.openml.org/\n[pytorch-reinforce]: https://github.com/pytorch/examples/blob/master/reinforcement_learning/reinforce.py\n[sklearn]: http://scikit-learn.org/stable/\n[sklearn-pipeline]: http://scikit-learn.org/stable/modules/generated/sklearn.pipeline.Pipeline.html\n[xgboost]: https://xgboost.readthedocs.io/en/latest/python/python_intro.html\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/cosmicBboy/ml-research/tree/master/metalearn", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "meta-ml", "package_url": "https://pypi.org/project/meta-ml/", "platform": "", "project_url": "https://pypi.org/project/meta-ml/", "project_urls": { "Homepage": "https://github.com/cosmicBboy/ml-research/tree/master/metalearn" }, "release_url": "https://pypi.org/project/meta-ml/0.0.15/", "requires_dist": [ "colorlover", "click (==6.7)", "dash", "dash-core-components", "dash-html-components", "dill", "floyd-cli", "kaggle", "matplotlib", "numpy", "openml (==0.9.0)", "pandas (==0.24.2)", "pynisher", "torch (==1.2.0)", "scikit-learn (==0.21.2)", "scipy", "yamlordereddictloader" ], "requires_python": "", "summary": "MetaRL-based Estimator using Task-encodings for AutoML", "version": "0.0.15" }, "last_serial": 5764992, "releases": { "0.0.10": [ { "comment_text": "", "digests": { "md5": "76c91cf011b5592bd89a84d046479f58", "sha256": "d7345baa5aff1f4120dc14ece7ec31995800f31f0d329de106dc4ae57c8f39ea" }, "downloads": -1, "filename": "meta_ml-0.0.10-py3-none-any.whl", "has_sig": false, "md5_digest": "76c91cf011b5592bd89a84d046479f58", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 83365, "upload_time": "2019-07-19T04:29:08", "url": "https://files.pythonhosted.org/packages/58/bb/7520dc6054db4a2c6e022e9aded41bd931c2ee13ba16ffc240e9f8bc9094/meta_ml-0.0.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d294a88ffc7753012bcec6d369d82194", "sha256": "cbcbea9f31373b5c4d82187792afe4e1a355373eed3b50b569ef690d34420d33" }, "downloads": -1, "filename": "meta-ml-0.0.10.tar.gz", "has_sig": false, "md5_digest": "d294a88ffc7753012bcec6d369d82194", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65941, "upload_time": "2019-07-19T04:29:10", "url": "https://files.pythonhosted.org/packages/c9/ae/8fabbbfdb28e45b96b3d84a548c3bfd0671f356a89b274da9386b98fd898/meta-ml-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "52622dc58aab61873ab9e9c7473e8a6f", "sha256": "5511306b626729436dd98bd54314f2cda99a44e200a41abf9cb6370d16cd4b2e" }, "downloads": -1, "filename": "meta_ml-0.0.11-py3-none-any.whl", "has_sig": false, "md5_digest": "52622dc58aab61873ab9e9c7473e8a6f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 83399, "upload_time": "2019-07-19T04:59:21", "url": "https://files.pythonhosted.org/packages/5a/2f/f1f40bb6ba69cbe43eb2421adc16045d6e257cdbdc23864350e4e511184a/meta_ml-0.0.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b4ce2b60902b70f338330dce552992b7", "sha256": "cccc817847e0966618c78ab40f34c40ce5593a5c8d3ffec3ee0ff48d84891f90" }, "downloads": -1, "filename": "meta-ml-0.0.11.tar.gz", "has_sig": false, "md5_digest": "b4ce2b60902b70f338330dce552992b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65967, "upload_time": "2019-07-19T04:59:23", "url": "https://files.pythonhosted.org/packages/1a/79/0d364cf5256f1565c156b18443be1a5cc8ff1aab38bcb763b6e005352631/meta-ml-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "9b8e64c4754685a502a86265b7e53ae2", "sha256": "211ee23f61cf4fa7209a37da5bbe7fda818ce6c4eec363040f655d32b1bdb89e" }, "downloads": -1, "filename": "meta_ml-0.0.12-py3-none-any.whl", "has_sig": false, "md5_digest": "9b8e64c4754685a502a86265b7e53ae2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 83397, "upload_time": "2019-07-19T05:14:58", "url": "https://files.pythonhosted.org/packages/1b/54/9a2efa8edbeb560460d470aeba0324a9cc78235db39f03cafa8f7e809539/meta_ml-0.0.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e7e712308ded6408adb5e496e085993a", "sha256": "003b73b22053188b6dd6f4dbfc8db58ade9071ad594851c049db4a6ba2775a30" }, "downloads": -1, "filename": "meta-ml-0.0.12.tar.gz", "has_sig": false, "md5_digest": "e7e712308ded6408adb5e496e085993a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65967, "upload_time": "2019-07-19T05:14:59", "url": "https://files.pythonhosted.org/packages/7f/d4/89d852eeedf0967fbceba48d6920d7637457db92ee86c739a4504c355a9e/meta-ml-0.0.12.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "96f220ddf7b12c0d212fb4f3a8c60cad", "sha256": "9c05f64ce53cf2770cf8a37af56f9f54e23e987f3a9f8bccbf0134f81b352f83" }, "downloads": -1, "filename": "meta_ml-0.0.13-py3-none-any.whl", "has_sig": false, "md5_digest": "96f220ddf7b12c0d212fb4f3a8c60cad", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 83542, "upload_time": "2019-07-31T03:54:10", "url": "https://files.pythonhosted.org/packages/06/c0/79cd21f7c448ac9a45db03849b11ee1db257b139f9ba3c5c465aa278b743/meta_ml-0.0.13-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8244b198c1b93bae48876f9c19904ddd", "sha256": "813953d0636f691871a1cdf8f63906c52386c1add73cfd287e4042697256d335" }, "downloads": -1, "filename": "meta-ml-0.0.13.tar.gz", "has_sig": false, "md5_digest": "8244b198c1b93bae48876f9c19904ddd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 66120, "upload_time": "2019-07-31T03:54:12", "url": "https://files.pythonhosted.org/packages/82/8e/d5b05c6ea359603609782b2ac740fb6466ee49063a7dfde9dba50d782684/meta-ml-0.0.13.tar.gz" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "5840993a1dac6ddac47e92481cd42456", "sha256": "c7f58494c18076f3ab4fcc191a71aeaafbe62626e30db39f26f93e1a579cad9f" }, "downloads": -1, "filename": "meta_ml-0.0.14-py3-none-any.whl", "has_sig": false, "md5_digest": "5840993a1dac6ddac47e92481cd42456", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 83538, "upload_time": "2019-08-21T04:56:20", "url": "https://files.pythonhosted.org/packages/0e/03/9fade9a0b632acee92db0f2906319950cbf6ef58755c1251590f9b75f93b/meta_ml-0.0.14-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "92740af82071c322c0077d54e130cab1", "sha256": "e2f540e3e2546225b2d01c051092b534754ab5893d0069e715455a1134365fd4" }, "downloads": -1, "filename": "meta-ml-0.0.14.tar.gz", "has_sig": false, "md5_digest": "92740af82071c322c0077d54e130cab1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 66124, "upload_time": "2019-08-21T04:56:21", "url": "https://files.pythonhosted.org/packages/77/e8/79e7916f47f7af912ea6f928eaa42b410e706ad0b77c6ddb7d497fd7e063/meta-ml-0.0.14.tar.gz" } ], "0.0.15": [ { "comment_text": "", "digests": { "md5": "9e375f382231ca4ca4339bc581d73a8e", "sha256": "ff6d34c72e5c68e64a1ba9781ece5289dfc432acf79bdd9480605d3e6688ddab" }, "downloads": -1, "filename": "meta_ml-0.0.15-py3-none-any.whl", "has_sig": false, "md5_digest": "9e375f382231ca4ca4339bc581d73a8e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 83545, "upload_time": "2019-08-31T18:32:34", "url": "https://files.pythonhosted.org/packages/85/a5/811fd7a6539e5ff7f88051c08fc1503a2a9a8ae1c6060c2e7181e9a39681/meta_ml-0.0.15-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "57ded917829defc8de3c42599a41d7c6", "sha256": "5c9679a184fe33eac79b36e267a9e07c592ad0dd967031b53b3210afb84fe735" }, "downloads": -1, "filename": "meta-ml-0.0.15.tar.gz", "has_sig": false, "md5_digest": "57ded917829defc8de3c42599a41d7c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 66125, "upload_time": "2019-08-31T18:32:36", "url": "https://files.pythonhosted.org/packages/f8/ba/bfcaa1991722fb9956566e3b9354ccf9b3a7dee4b78044f818e1fcf70b9e/meta-ml-0.0.15.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "463d284a532a19d7b0ac1fb42a377943", "sha256": "a1757e6dd74f66c8a1af960cb0d98d6503951d98153d5eb6766ad896570bd80c" }, "downloads": -1, "filename": "meta_ml-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "463d284a532a19d7b0ac1fb42a377943", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 83415, "upload_time": "2019-06-22T17:31:55", "url": "https://files.pythonhosted.org/packages/f0/f1/dbf2d9e40e8c79302293a4a878018809927227dd21ad544b8aed655924de/meta_ml-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "78051ef1c75f30e2b18b798747b193c5", "sha256": "9828e340bb85876652eea446770e7fb6004fd66a894b6bdf35dced1c15c86edf" }, "downloads": -1, "filename": "meta-ml-0.0.4.tar.gz", "has_sig": false, "md5_digest": "78051ef1c75f30e2b18b798747b193c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 71630, "upload_time": "2019-06-22T17:31:57", "url": "https://files.pythonhosted.org/packages/61/70/0e5cc5c12f5e76dc019d750b08b3cda82a3034fb3ee1463b15006d7c4845/meta-ml-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "57ad48b5a9ffb04b04e6aabc2a40fcdd", "sha256": "6f0d22f9e13616869948a173f4a97c05c813859ab6921083ef997164d82eb087" }, "downloads": -1, "filename": "meta_ml-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "57ad48b5a9ffb04b04e6aabc2a40fcdd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 84157, "upload_time": "2019-06-29T20:16:52", "url": "https://files.pythonhosted.org/packages/f6/f5/3612b99ff1af109d845ce0f6a32cc3af7f8b1c60c099ea999ed729765d52/meta_ml-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "65ad79ee298812a08f443d8e171c0aba", "sha256": "0cf36099c3ee098a013c43c11a6c1c56bdb876fd89407796e8945a52e31a18cd" }, "downloads": -1, "filename": "meta-ml-0.0.5.tar.gz", "has_sig": false, "md5_digest": "65ad79ee298812a08f443d8e171c0aba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67904, "upload_time": "2019-06-29T20:16:54", "url": "https://files.pythonhosted.org/packages/a9/71/be1743d281ecd203a9f6dd79b92070d4486686c2d9912ec81dd70065ea3c/meta-ml-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "70554358209527a0cbc574f55bb1f997", "sha256": "faad41ce9c9464c1696b7771f895e3dcc495ba88a6e770ffc0c576626987ed7e" }, "downloads": -1, "filename": "meta_ml-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "70554358209527a0cbc574f55bb1f997", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 84451, "upload_time": "2019-07-08T02:22:59", "url": "https://files.pythonhosted.org/packages/66/e3/335a38c56d4e783d79b3345d0645a9d63cf0c4ef31105281035187ba427a/meta_ml-0.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8d30428e5d1b3c1280bec1d4a5fc68ec", "sha256": "1a7b7eee41034a80429b92fc48cf80ba19a9d0a8b5a5a20c641bc10926684df7" }, "downloads": -1, "filename": "meta-ml-0.0.6.tar.gz", "has_sig": false, "md5_digest": "8d30428e5d1b3c1280bec1d4a5fc68ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68402, "upload_time": "2019-07-08T02:23:00", "url": "https://files.pythonhosted.org/packages/9c/6b/aa08cc2e791796a7d73d5c690fa89c2f6232f63f9de2a33e59fb1a8b1223/meta-ml-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "d851df27c2094e1fcd2576377e28c495", "sha256": "1b8fb39ea1cfb9754f3d776fc663d2feb81a3a4fddad95f6b6c6d0ac1c204f7f" }, "downloads": -1, "filename": "meta_ml-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "d851df27c2094e1fcd2576377e28c495", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 83196, "upload_time": "2019-07-13T20:07:11", "url": "https://files.pythonhosted.org/packages/5a/cd/84d3cc3b9f7c9556fb9aec102bd693dabe05b7ce777e28df8f6061cd14ab/meta_ml-0.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cb91fbc9d78186e85b322629de988f80", "sha256": "b99b69e88198a5d801c1e9e4743b2157c3badd3c64b65fa0593385935d031b15" }, "downloads": -1, "filename": "meta-ml-0.0.7.tar.gz", "has_sig": false, "md5_digest": "cb91fbc9d78186e85b322629de988f80", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65671, "upload_time": "2019-07-13T20:07:12", "url": "https://files.pythonhosted.org/packages/1d/d7/3b51349c7cb255124dd37538c296c8162f626b5d909119839b6a5ec0b0c2/meta-ml-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "abf148cc12e74b582e3704e72d8ee255", "sha256": "2c58a8a7c9f62969008947700966083a235cb9669d8bd8e43593a4860b149d10" }, "downloads": -1, "filename": "meta_ml-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "abf148cc12e74b582e3704e72d8ee255", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 83072, "upload_time": "2019-07-17T02:05:10", "url": "https://files.pythonhosted.org/packages/53/5b/b1fbc31ae9cba982f7c99df62df726075ab80556d6d67ef68130ff3246d9/meta_ml-0.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b54926fd7dddd45c06376ea9b0ccbf20", "sha256": "9022e7fdf6df07b8cbe72a0abe29527bbab03a163b9925a748de3543620b6ad3" }, "downloads": -1, "filename": "meta-ml-0.0.8.tar.gz", "has_sig": false, "md5_digest": "b54926fd7dddd45c06376ea9b0ccbf20", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65543, "upload_time": "2019-07-17T02:05:11", "url": "https://files.pythonhosted.org/packages/7f/da/82e85846432fefeaa2b0cb332c535a9041df290c7c828ef8f6bc2aab1953/meta-ml-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "a29cdad1bfa9d282836184d1e03b7cad", "sha256": "e24de078972402debc7ef0f9f9a7d13d669c04056f23ecfce6fff5b69f044b49" }, "downloads": -1, "filename": "meta_ml-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "a29cdad1bfa9d282836184d1e03b7cad", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 83386, "upload_time": "2019-07-19T03:07:23", "url": "https://files.pythonhosted.org/packages/53/cf/3aea2eac474dc4521331207c0c5c53a38ebbb95f0bfba0b82452befc21ae/meta_ml-0.0.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8c2acca941fd02d9464affafb2caa4a4", "sha256": "c334c8becf23b2dce6843c2726e90b8c4749e199590a70bbe902e5e8551281e7" }, "downloads": -1, "filename": "meta-ml-0.0.9.tar.gz", "has_sig": false, "md5_digest": "8c2acca941fd02d9464affafb2caa4a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65830, "upload_time": "2019-07-19T03:07:25", "url": "https://files.pythonhosted.org/packages/ee/a3/9bfd7d37a2f6a842c934f1b02a14b731bd42bd12a1ce54375f5e63a8f8c2/meta-ml-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9e375f382231ca4ca4339bc581d73a8e", "sha256": "ff6d34c72e5c68e64a1ba9781ece5289dfc432acf79bdd9480605d3e6688ddab" }, "downloads": -1, "filename": "meta_ml-0.0.15-py3-none-any.whl", "has_sig": false, "md5_digest": "9e375f382231ca4ca4339bc581d73a8e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 83545, "upload_time": "2019-08-31T18:32:34", "url": "https://files.pythonhosted.org/packages/85/a5/811fd7a6539e5ff7f88051c08fc1503a2a9a8ae1c6060c2e7181e9a39681/meta_ml-0.0.15-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "57ded917829defc8de3c42599a41d7c6", "sha256": "5c9679a184fe33eac79b36e267a9e07c592ad0dd967031b53b3210afb84fe735" }, "downloads": -1, "filename": "meta-ml-0.0.15.tar.gz", "has_sig": false, "md5_digest": "57ded917829defc8de3c42599a41d7c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 66125, "upload_time": "2019-08-31T18:32:36", "url": "https://files.pythonhosted.org/packages/f8/ba/bfcaa1991722fb9956566e3b9354ccf9b3a7dee4b78044f818e1fcf70b9e/meta-ml-0.0.15.tar.gz" } ] }