{"id":14959006,"url":"https://github.com/dkeras-project/dkeras","last_synced_at":"2025-05-02T12:31:18.215Z","repository":{"id":37743113,"uuid":"196064272","full_name":"dkeras-project/dkeras","owner":"dkeras-project","description":"Distributed Keras Engine, Make Keras faster with only one line of code. ","archived":false,"fork":false,"pushed_at":"2019-10-03T17:50:59.000Z","size":6800,"stargazers_count":189,"open_issues_count":3,"forks_count":12,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-07T01:52:23.672Z","etag":null,"topics":["data-parallelism","deep-learning","deep-neural-networks","distributed","distributed-deep-learning","distributed-keras-engine","distributed-systems","keras","keras-classification-models","keras-models","keras-neural-networks","keras-tensorflow","machine-learning","neural-network","parallel-computing","plaidml","python","ray","tensorflow","tensorflow-models"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dkeras-project.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-07-09T18:43:41.000Z","updated_at":"2025-03-23T08:15:02.000Z","dependencies_parsed_at":"2022-09-13T19:31:18.093Z","dependency_job_id":null,"html_url":"https://github.com/dkeras-project/dkeras","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkeras-project%2Fdkeras","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkeras-project%2Fdkeras/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkeras-project%2Fdkeras/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkeras-project%2Fdkeras/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dkeras-project","download_url":"https://codeload.github.com/dkeras-project/dkeras/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252038128,"owners_count":21684628,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-parallelism","deep-learning","deep-neural-networks","distributed","distributed-deep-learning","distributed-keras-engine","distributed-systems","keras","keras-classification-models","keras-models","keras-neural-networks","keras-tensorflow","machine-learning","neural-network","parallel-computing","plaidml","python","ray","tensorflow","tensorflow-models"],"created_at":"2024-09-24T13:18:41.016Z","updated_at":"2025-05-02T12:31:15.354Z","avatar_url":"https://github.com/dkeras-project.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/gndctrl2mjrtm/dkeras/blob/master/assets/dkeras_logo.png?raw=true\" alt=\"dKeras logo\"/\u003e\n\u003c/p\u003e\n\n# dKeras: Distributed Keras Engine\n### ***Make Keras faster with only one line of code.***\n\ndKeras is a distributed Keras engine that is built on top of \n[Ray](https://github.com/ray-project/ray). By wrapping dKeras around your\noriginal Keras model, it allows you to use many distributed deep learning\ntechniques to automatically improve your system's performance.\n\n\nWith an easy-to-use API and a backend framework that can be deployed from\nthe laptop to the data center, dKeras simpilifies what used to be a complex\nand time-consuming process into only a few adjustments.\n\n#### Why Use dKeras?\n\nDistributed deep learning can be essential for production systems where you \nneed fast inference but don't want expensive hardware accelerators or when\nresearchers need to train large models made up of distributable parts.\n\nThis becomes a challenge for developers because they'll need expertise in not\nonly deep learning but also distributed systems. A production team might also\nneed a machine learning optimization engineer to use neural network \noptimizers in terms of precision changes, layer fusing, or other techniques. \n\nDistributed inference is a simple way to get better inference FPS. The graph \nbelow shows how non-optimized, out-of-box models from default frameworks can \nbe quickly sped up through data parallelism:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/gndctrl2mjrtm/dkeras/blob/master/assets/inference_comparison.png?raw=true\" alt=\"dKeras graph\"/\u003e\n\u003c/p\u003e\n\n\n#### Current Capabilities:\n- Data Parallelism Inference\n\n#### Future Capabilities:\n- Model Parallelism Inference\n- Distributed Training\n- Easy Multi-model production-ready building\n- Data stream input distributed inference\n- PlaidML Support\n- Autoscaling\n- Automatic optimal hardware configuration \n- PBS/Torque support\n\n## Installation\nThe first official release of dKeras will be available soon. For \nnow, install from source.\n```bash\npip install git+https://github.com/dkeras-project/dkeras\n```\n\n### Requirements\n\n- Python 3.6 or higher\n- ray\n- psutil\n- Linux (or OSX, dKeras works on laptops too!)\n- numpy\n\n\n### Coming Soon: [PlaidML](https://github.com/plaidml/plaidml) Support\ndKeras will soon work alongside [PlaidML](https://github.com/plaidml/plaidml), \na \"portable tensor compiler for enabling deep learning on laptops, embedded devices, \nor other devices where the available computing hardware is not well \nsupported or the available software stack contains unpalatable \nlicense restrictions.\" \n\n## Distributed Inference\n\n### Example\n\n#### Original\n```python\nmodel = ResNet50()\nmodel.predict(data)\n```\n#### dKeras Version\n```python\nfrom dkeras import dKeras\n\nmodel = dKeras(ResNet50)\nmodel.predict(data)\n```\n\n#### Full Example\n```python\nfrom tensorflow.keras.applications import ResNet50\nfrom dkeras import dKeras\nimport numpy as np\nimport ray\n\nray.init()\n\ndata = np.random.uniform(-1, 1, (100, 224, 224, 3))\n\nmodel = dKeras(ResNet50, init_ray=False, wait_for_workers=True, n_workers=4)\npreds = model.predict(data)\n```\n\n#### Multiple Model Example\n```python\nimport numpy as np\nfrom tensorflow.keras.applications import ResNet50, MobileNet\n\nfrom dkeras import dKeras\nimport ray\n\nray.init()\n\nmodel1 = dKeras(ResNet50, weights='imagenet', wait_for_workers=True, n_workers=3)\nmodel2 = dKeras(MobileNet, weights='imagenet', wait_for_workers=True, n_workers=3)\n\ntest_data = np.random.uniform(-1, 1, (100, 224, 224, 3))\n\nmodel1.predict(test_data)\nmodel2.predict(test_data)\n\nmodel1.close()\nmodel2.close()\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdkeras-project%2Fdkeras","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdkeras-project%2Fdkeras","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdkeras-project%2Fdkeras/lists"}