Deepr
The deepr module provide abstractions (layers, readers, prepro, metrics, config) to help build tensorflow models on top of tf estimators
Install / Use
/learn @criteo/DeeprREADME
DeepR: Build and Train Deep Learning Pipelines for Production
|pypi|_ |ci|_
.. |pypi| image:: https://img.shields.io/pypi/v/deepr.svg .. _pypi: https://pypi.python.org/pypi/deepr
.. |ci| image:: https://github.com/criteo/deepr/workflows/Continuous%20integration/badge.svg .. _ci: https://github.com/criteo/deepr/actions?query=workflow%3A%22Continuous+integration%22
DeepR is a library for Deep Learning on top of Tensorflow 1.x that focuses on production capabilities. It makes it easy to define pipelines (via the Job abstraction), preprocess data (via the Prepro abstraction), design models (via the Layer abstraction) and train them either locally or on a Yarn cluster. It also integrates nicely with MLFlow and Graphite, allowing for production ready logging capabilities.
It can be seen as a collection of generic tools and abstractions to be extended for more specific use cases. See the Use DeepR section for more information.
Submitting jobs and defining flexible pipelines is made possible thanks to a config system based off simple dictionaries and import strings. It is similar to Thinc config system <https://thinc.ai/docs>_ or gin config <https://github.com/google/gin-config>_ in a lot of ways.
To start with deepr read the blogpost <https://medium.com/criteo-labs/deepr-training-tensorflow-models-for-production-dda34a914c3b?source=friends_link&sk=91949017f33714dba3323956035f76e0>_ then go to quickstart on colab <https://colab.research.google.com/github/criteo/deepr/blob/master/docs/getting_started/quickstart.ipynb>_
Why a Deep Learning Library based on TF1.x
Tensorflow 1.x provides great production oriented capabilities, centered around the tf.Estimator API. It makes it possible to deploy models using a protobuf with no python code, and optimize computational graphs with XLA compilation.
Although DeepR comes with a Layer interface (most similar to google TRAX <https://github.com/google/trax>_ and very close to most modern frameworks) that makes it easy to define models using a functional programming approach, most of its capabilities are orthogonal to it. Most of the building blocks expect generic python types (for example, a Layer is merely a function fn(tensors, mode)).
Use DeepR
You can use DeepR as a simple python library, reusing only a subset of the concepts (the config system is generic for example) or build your own extension as a standalone python package that depends on deepr.
Have a look at the submodule examples <../deepr/examples>_ of deepr that illustrates what packages built on top of deepr would look like. It defines custom jobs, layers, preprocessors, macros as well as configs <../deepr/examples/multiply/configs>_. Once your custom components are packaged in a library, it is easy to run configs with
.. code-block::
deepr run config.json macros.json
MovieLens Example
You can try using DeepR on the MovieLens dataset, consisting of movie ratings aggregated by users. The submodule movielens <../deepr/examples/movielens>_ implements an AverageModel, a Transformer Model and a BPR loss as well as jobs to build and evaluate on this dataset.
You can jump to the notebook on Colab <https://colab.research.google.com/github/criteo/deepr/blob/master/docs/movielens/movielens.ipynb>_ or use the command line.
.. code-block::
pip install deepr[cpu] faiss_cpu
cd deepr/examples/movielens/configs
wget http://files.grouplens.org/datasets/movielens/ml-20m.zip
unzip ml-20m.zip
deepr run config.json macros.json
Installation
Prerequisites
Make sure you use ``python>=3.6`` and an up-to-date version of ``pip`` and ``setuptools``
.. code-block::
python --version
pip install -U pip setuptools
It is recommended to install ``deepr`` in a new virtual environment. For example
.. code-block::
python -m venv deepr
source deepr/bin/activate
pip install -U pip setuptools
pip install deepr[cpu]
Using Pip
~~~~~~~~~
If installing using pip and your own ``requirements.txt`` file, be aware that ``Tensorflow`` is listed in ``extras_require`` in the ``setup.py``, which means that ``pip install deepr`` WON'T INSTALL Tensorflow. This is because the Tensorflow requirement is different depending on the platform (GPU or CPU-only).
You can specify which extras to use using the ``[cpu]`` or ``[gpu]`` argument like in the following examples
.. code-block::
pip install deepr[cpu]
pip install deepr[gpu]
pip install -e ".[cpu]"
pip install -e ".[gpu]"
Or alternatively, pre-install Tensorflow separately like so
.. code-block::
pip install tensorflow==1.15.2
pip install deepr
From Source
~~~~~~~~~~~
First, clone the ``deepr`` repo on your local machine with
.. code-block::
git clone https://github.com/criteo/deepr.git
cd deepr
To install from source in editable mode, run
.. code-block::
make install-cpu
Or to install on a GPU enabled machine
.. code-block::
make install-gpu
To install development tools and test requirements, run
.. code-block::
make install-dev
Test
----
To run unit tests in your current environment, run
.. code-block::
make test
To run integration tests in your current environment, run
.. code-block::
make integration
To run lint + unit and integration tests in a fresh virtual environment, run
.. code-block::
make venv-lint-test-integration
Lint
----
To run ``mypy``, ``pylint`` and ``black --check``:
.. code-block::
make lint
To auto-format the code using ``black``
.. code-block::
make black
Command Line Tools
------------------
To get a list of available commands, run
.. code-block::
deepr --help
Contributing
------------
See `CONTRIBUTING <CONTRIBUTING.rst>`_
Change log
----------
See `CHANGELOG <CHANGELOG.rst>`_
Main contributors
-----------------
Main contributors and maintainers for deepr are
`Guillaume Genthial <https://github.com/guillaumegenthial>`_,
`Romain Beaumont <https://github.com/rom1504>`_,
`Denis Kuzin <https://github.com/denkuzin>`_,
`Amine Benhalloum <https://github.com/bamine>`_
Related Skills
proje
Interactive vocabulary learning platform with smart flashcards and spaced repetition for effective language acquisition.
YC-Killer
2.7kA library of enterprise-grade AI agents designed to democratize artificial intelligence and provide free, open-source alternatives to overvalued Y Combinator startups. If you are excited about democratizing AI access & AI agents, please star ⭐️ this repository and use the link in the readme to join our open source AI research team.
best-practices-researcher
The most comprehensive Claude Code skills registry | Web Search: https://skills-registry-web.vercel.app
groundhog
401Groundhog's primary purpose is to teach people how Cursor and all these other coding agents work under the hood. If you understand how these coding assistants work from first principles, then you can drive these tools harder (or perhaps make your own!).
