Deeplay is a deep learning library in Python that extends PyTorch with additional functionalities focused on modularity and reusability. Deeplay seeks to address the common issue of rigid and non-reusable modules in PyTorch projects by offering a system that allows for easy customization and optimization of neural network components. Specifically, it facilitates the definition, training, and adjustment of neural networks by introducing dynamic modification capabilities for model components after their initial creation.
# Core Philosophy
The core philosophy of Deeplay is to enhance flexibility in the construction and adaptation of neural networks. It is built on the observation that PyTorch modules often lack reusability across projects, leading to redundant implementations. Deeplay enables properties of neural network submodules to be changed post-creation, supporting seamless integration of these modifications. Its design is based on a hierarchy of abstractions from models down to layers, emphasizing compatibility and easy transformation of components. This can be summarized as follows:
- **Enhance Flexibility:** Neural networks defined using Deeplay should be fully adaptable by the user, allowing dynamic modifications to model components. This should be possible without the author of the model having to anticipate all potential changes in advance.
- **Promote Reusability:** Deeplay components should be immediately reusable across different projects and models. This reusability should extend to both the components themselves and the modifications made to them.
- **Support Seamless Integration:** Modifications to model blocks and components should be possible without the user worrying about breaking the model's compatibility with other parts of the network. Deeplay should handle these integrations automatically as far as possible.
- **Hierarchy of Abstractions:** Neural networks and deep learning are fundamentally hierarchical, with each level of abstraction being mostly agnostic to the details of the levels below it. An *application* should be agnostic to which model it uses, a *model* should be agnostic to the specifics of the components it uses, a *component* should be agnostic to the specifics of the blocks it uses, and a *block* should be agnostic to the specifics of the *layers* it uses . Deeplay reflects this hierarchy in its design.
# Deeplay Compared to Torch
Deeplay is designed as a superset of PyTorch, retaining compatibility with PyTorch code while introducing features aimed at improving modularity and customization. Unlike PyTorch's fixed module implementations, Deeplay provides a framework that supports dynamic adjustments to model architectures. This includes capabilities for on-the-fly property changes and a style registry for component customization. Users can easily transition between PyTorch and Deeplay, taking advantage of Deeplay's additional features without losing the familiarity and functionality of PyTorch.
# Deeplay Compared to Lightning
While Deeplay utilizes PyTorch Lightning for simplifying the training loop process, it goes further by offering enhanced modularity for the architectural design of models. PyTorch Lightning focuses on streamlining and optimizing training operations, whereas Deeplay extends this convenience to the model construction phase. This integration offers users a comprehensive toolset for both designing flexible neural network architectures and efficiently managing their training, positioning Deeplay as a solution for more adaptive and intuitive neural network development.
# Quick Start Guide
The following quick start guide is intended for complete beginners to understand how to use Deeplay, from installation to training your first model. Let's get started!
## Installation
You can install Deeplay using pip:
```bash
pip install deeplay
```
or
```bash
python -m pip install deeplay
```
This will automatically install the required dependencies, including PyTorch and PyTorch Lightning. If a specific version of PyTorch is desired, it can be installed separately.
## Getting Started
Here you find a series of notebooks that give you an overview of the core features of Deeplay and how to use them:
- GS101 **[Understanding the Core Objects in Deeplay](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/getting-started/GS101_core_objects.ipynb)**
Layers, Blocks, Components, Models, Applications.
- GS111 **[Training Your First Model](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/getting-started/GS111_first_model.ipynb)**
Creating, training, saving and using a deep learning model with Deeplay.
- GS121 **[Working with Deeplay Modules](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/getting-started/GS121_modules.ipynb)**
Differences between Deeplay and PyTorch modules. How to create, build, and configure Deeplay modules.
- GS131 **[Using the Main Deeplay Methods](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/getting-started/GS131_methods.ipynb)**
`Application.fit()`, `Application.test()`, `DeeplayModule.predict()`, `Trainer.fit()`.
- GS141 **[Using Deeplay Applications](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/getting-started/GS141_applications.ipynb)**
Main Deeplay applications. Controlling loss functions, optimizers, and metrics. Training history. Callback.
- GS151 **[Using Deeplay Models](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/getting-started/GS151_models.ipynb)**
Main Deeplay models. Making a model. Weight initialization.
- GS161 **[Using Deeplay Components](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/getting-started/GS161_components.ipynb)**
Main Deeplay components.
- GS171 **[Using Deeplay Blocks](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/getting-started/GS171_blocks.ipynb)**
Main Deeplay blocks. Adding, ordering, and removing layers. Operations.
- GC181 **[Configuring Deeplay Objects](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/getting-started/GS181_configure.ipynb)**
`DeeplayModule.configure()` and selectors.
- GC191 **[Using Styles](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/getting-started/GS191_styles.ipynb)**
Styles.
## Advanced Topics
- AT201 **[Using Mappings as Inputs](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/advanced-topics/AT201_mappings.ipynb)**
## Developer Tutorials
Here you find a series of notebooks tailored for Deeplay's developers:
- DT101 **[Deeplay File Structure](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/developers/DT101_files.ipynb)**
- DT111 **[Style Guide](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/developers/DT111_style.ipynb)**
- DT121 **[Overview of Deeplay Classes](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/developers/DT121_overview.ipynb)**
- DT131 **[Deeplay Applications](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/developers/DT131_applications.ipynb)**
- DT141 **[Deeplay Models](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/developers/DT141_models.ipynb)**
- DT151 **[Deeplay Components](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/developers/DT151_components.ipynb)**
- DT161 **[Deeplay Operations](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/developers/DT151_operations.ipynb)**
- DT171 **[Deeplay Blocks](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/developers/DT171_vlocks.ipynb)**
- DT181 **[Overview of Deeplay Internal Structure](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/developers/DT181_internals.ipynb)**
Raw data
{
"_id": null,
"home_page": "https://github.com/DeepTrackAI/deeplay",
"name": "deeplay",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "AI, Deep Learning, Machine Learning, Data Science, Research Platform, Artificial Intelligence, Technology",
"author": "Benjamin Midtvedt, Jesus Pineda, Henrik Klein Moberg, Harshith Bachimanchi, Carlo Manzo, Giovanni Volpe",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/98/8f/a57b699d327c53d5d40916c8369e5b856a57bc17647d26cccba15916bb8e/deeplay-0.1.1.tar.gz",
"platform": null,
"description": "Deeplay is a deep learning library in Python that extends PyTorch with additional functionalities focused on modularity and reusability. Deeplay seeks to address the common issue of rigid and non-reusable modules in PyTorch projects by offering a system that allows for easy customization and optimization of neural network components. Specifically, it facilitates the definition, training, and adjustment of neural networks by introducing dynamic modification capabilities for model components after their initial creation.\r\n\r\n# Core Philosophy\r\n\r\nThe core philosophy of Deeplay is to enhance flexibility in the construction and adaptation of neural networks. It is built on the observation that PyTorch modules often lack reusability across projects, leading to redundant implementations. Deeplay enables properties of neural network submodules to be changed post-creation, supporting seamless integration of these modifications. Its design is based on a hierarchy of abstractions from models down to layers, emphasizing compatibility and easy transformation of components. This can be summarized as follows:\r\n\r\n- **Enhance Flexibility:** Neural networks defined using Deeplay should be fully adaptable by the user, allowing dynamic modifications to model components. This should be possible without the author of the model having to anticipate all potential changes in advance.\r\n- **Promote Reusability:** Deeplay components should be immediately reusable across different projects and models. This reusability should extend to both the components themselves and the modifications made to them.\r\n- **Support Seamless Integration:** Modifications to model blocks and components should be possible without the user worrying about breaking the model's compatibility with other parts of the network. Deeplay should handle these integrations automatically as far as possible.\r\n- **Hierarchy of Abstractions:** Neural networks and deep learning are fundamentally hierarchical, with each level of abstraction being mostly agnostic to the details of the levels below it. An *application* should be agnostic to which model it uses, a *model* should be agnostic to the specifics of the components it uses, a *component* should be agnostic to the specifics of the blocks it uses, and a *block* should be agnostic to the specifics of the *layers* it uses . Deeplay reflects this hierarchy in its design.\r\n\r\n# Deeplay Compared to Torch\r\n\r\nDeeplay is designed as a superset of PyTorch, retaining compatibility with PyTorch code while introducing features aimed at improving modularity and customization. Unlike PyTorch's fixed module implementations, Deeplay provides a framework that supports dynamic adjustments to model architectures. This includes capabilities for on-the-fly property changes and a style registry for component customization. Users can easily transition between PyTorch and Deeplay, taking advantage of Deeplay's additional features without losing the familiarity and functionality of PyTorch.\r\n\r\n# Deeplay Compared to Lightning\r\n\r\nWhile Deeplay utilizes PyTorch Lightning for simplifying the training loop process, it goes further by offering enhanced modularity for the architectural design of models. PyTorch Lightning focuses on streamlining and optimizing training operations, whereas Deeplay extends this convenience to the model construction phase. This integration offers users a comprehensive toolset for both designing flexible neural network architectures and efficiently managing their training, positioning Deeplay as a solution for more adaptive and intuitive neural network development.\r\n\r\n# Quick Start Guide\r\n\r\nThe following quick start guide is intended for complete beginners to understand how to use Deeplay, from installation to training your first model. Let's get started!\r\n\r\n## Installation\r\n\r\nYou can install Deeplay using pip:\r\n```bash\r\npip install deeplay\r\n```\r\nor\r\n```bash\r\npython -m pip install deeplay\r\n```\r\nThis will automatically install the required dependencies, including PyTorch and PyTorch Lightning. If a specific version of PyTorch is desired, it can be installed separately.\r\n\r\n## Getting Started\r\n\r\nHere you find a series of notebooks that give you an overview of the core features of Deeplay and how to use them:\r\n\r\n- GS101 **[Understanding the Core Objects in Deeplay](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/getting-started/GS101_core_objects.ipynb)**\r\n\r\n Layers, Blocks, Components, Models, Applications.\r\n\r\n- GS111 **[Training Your First Model](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/getting-started/GS111_first_model.ipynb)**\r\n\r\n Creating, training, saving and using a deep learning model with Deeplay.\r\n\r\n- GS121 **[Working with Deeplay Modules](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/getting-started/GS121_modules.ipynb)**\r\n\r\n Differences between Deeplay and PyTorch modules. How to create, build, and configure Deeplay modules.\r\n\r\n- GS131 **[Using the Main Deeplay Methods](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/getting-started/GS131_methods.ipynb)**\r\n\r\n `Application.fit()`, `Application.test()`, `DeeplayModule.predict()`, `Trainer.fit()`.\r\n\r\n- GS141 **[Using Deeplay Applications](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/getting-started/GS141_applications.ipynb)**\r\n\r\n Main Deeplay applications. Controlling loss functions, optimizers, and metrics. Training history. Callback.\r\n\r\n- GS151 **[Using Deeplay Models](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/getting-started/GS151_models.ipynb)**\r\n\r\n Main Deeplay models. Making a model. Weight initialization.\r\n\r\n- GS161 **[Using Deeplay Components](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/getting-started/GS161_components.ipynb)**\r\n\r\n Main Deeplay components.\r\n\r\n- GS171 **[Using Deeplay Blocks](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/getting-started/GS171_blocks.ipynb)**\r\n\r\n Main Deeplay blocks. Adding, ordering, and removing layers. Operations.\r\n\r\n- GC181 **[Configuring Deeplay Objects](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/getting-started/GS181_configure.ipynb)**\r\n\r\n `DeeplayModule.configure()` and selectors.\r\n\r\n- GC191 **[Using Styles](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/getting-started/GS191_styles.ipynb)**\r\n\r\n Styles.\r\n\r\n## Advanced Topics\r\n\r\n- AT201 **[Using Mappings as Inputs](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/advanced-topics/AT201_mappings.ipynb)**\r\n\r\n## Developer Tutorials\r\n\r\nHere you find a series of notebooks tailored for Deeplay's developers:\r\n\r\n- DT101 **[Deeplay File Structure](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/developers/DT101_files.ipynb)**\r\n\r\n- DT111 **[Style Guide](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/developers/DT111_style.ipynb)**\r\n\r\n- DT121 **[Overview of Deeplay Classes](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/developers/DT121_overview.ipynb)**\r\n\r\n- DT131 **[Deeplay Applications](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/developers/DT131_applications.ipynb)**\r\n\r\n- DT141 **[Deeplay Models](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/developers/DT141_models.ipynb)**\r\n\r\n- DT151 **[Deeplay Components](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/developers/DT151_components.ipynb)**\r\n\r\n- DT161 **[Deeplay Operations](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/developers/DT151_operations.ipynb)**\r\n\r\n- DT171 **[Deeplay Blocks](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/developers/DT171_vlocks.ipynb)**\r\n\r\n- DT181 **[Overview of Deeplay Internal Structure](https://github.com/DeepTrackAI/deeplay/blob/develop/tutorials/developers/DT181_internals.ipynb)**\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "An AI-powered platform for advancing deep learning research and applications, developed by DeepTrackAI.",
"version": "0.1.1",
"project_urls": {
"Homepage": "https://github.com/DeepTrackAI/deeplay"
},
"split_keywords": [
"ai",
" deep learning",
" machine learning",
" data science",
" research platform",
" artificial intelligence",
" technology"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b397222663a55da294cdcbceae5718b41fc388c6fb1ee9b4cd4b1f13bac238c1",
"md5": "3e3f855dbc4b696adb6ce935551e4fa8",
"sha256": "c988f0c6c562646f569ae49bfe244a07dad63bbeaa0b5a7c16bc85784316ebf8"
},
"downloads": -1,
"filename": "deeplay-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3e3f855dbc4b696adb6ce935551e4fa8",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 173422,
"upload_time": "2024-08-23T10:43:07",
"upload_time_iso_8601": "2024-08-23T10:43:07.765883Z",
"url": "https://files.pythonhosted.org/packages/b3/97/222663a55da294cdcbceae5718b41fc388c6fb1ee9b4cd4b1f13bac238c1/deeplay-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "988fa57b699d327c53d5d40916c8369e5b856a57bc17647d26cccba15916bb8e",
"md5": "e08225488dafb274cc358fc06c8a8f9d",
"sha256": "a107a3523c66478f8679b06ecaf45c187cc86951612472963bd8f3b06be0a6ee"
},
"downloads": -1,
"filename": "deeplay-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "e08225488dafb274cc358fc06c8a8f9d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 113465,
"upload_time": "2024-08-23T10:43:09",
"upload_time_iso_8601": "2024-08-23T10:43:09.674280Z",
"url": "https://files.pythonhosted.org/packages/98/8f/a57b699d327c53d5d40916c8369e5b856a57bc17647d26cccba15916bb8e/deeplay-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-23 10:43:09",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "DeepTrackAI",
"github_project": "deeplay",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "numpy",
"specs": [
[
"<",
"2.0.0"
]
]
},
{
"name": "matplotlib",
"specs": []
},
{
"name": "lightning",
"specs": []
},
{
"name": "torchmetrics",
"specs": []
},
{
"name": "torchvision",
"specs": []
},
{
"name": "torch-geometric",
"specs": []
},
{
"name": "kornia",
"specs": []
},
{
"name": "scipy",
"specs": []
},
{
"name": "scikit-image",
"specs": []
},
{
"name": "rich",
"specs": []
},
{
"name": "dill",
"specs": []
}
],
"lcname": "deeplay"
}