Emily CLI Documentation
Release-v3.0.6Emily combines the powers of Python and Docker to build stable and consistent machine learning and datascience python environments. Emily is useful for large cross-team project development as well as for simply running a single jupyter notebook or python script.
Downloademily@latest
See earlier versions
$ emily build [options]
Start a new project Valid Emily images: base | slim | cv | nlp torch-slim | torch-cv | torch-nlp | tf-slim tf-cv | tf-nlp | cuda-base | cuda-slim cuda-cv | cuda-nlp |cuda-torch-slim| cuda-torch-cv cuda-torch-nlp| cuda-tf-slim | cuda-tf-cv | cuda-tf-nlp
$ emily build
√ Emily: Project name::
· getting-started
Emily: An Emily template is a pre-built template containing
essential boilerplate code useful in the development of
microservices.
These templates include relevant endpoints depending on
which template you choose.
? Emily: Which Emily template do you want to use?
(Use arrow keys, confirm with ENTER)
…
> Default - Minimal project with hello world script
API - Simple project with API set up and ready
Machine learning [API, DVC, MLFlow, Pytorch] - Machine learning template with API, Data version control (DVC), MLFlow experiment reporting and pytorch
Machine learning API [API, Pytorch] - Machine learning template with API and pytorch
Machine learning [gRPC] - Machine learning template with gRPC
Machine Learning Reporting - Machine learning reporting template
· Default
Emily: An Emily image is a pre-built docker image containing
essential packages that are useful in the development of
microservices.
These images include relevant packages depending on which
type of project you are developing.
? Emily: Which Emily image fits your use case the best?
(Use arrow keys, confirm with ENTER)
…
> Base (contains just enough to run an API)
Slim (contains essential Machine Learning packages)
Computer Vision
Natural Language Processing
· Base
? Emily: Which editor do you want to use?
(Use arrow keys, confirm with ENTER)
…
Visual Studio Code
> PyCharm
Jupyter Notebook
Jupyter Lab
· PyCharm
Emily: Creating a new Emily project in my-directory/my-project-name...
Running Emily Build
To build a new Emily project, run emily build
in your terminal. You will be asked to provide a project name,
choose a project template (e.g. Default, API, ML-API, etc.), an Emily image
and an editor (e.g. VSCode, PyCharm, Jupyter Notebook or Jupyter Lab).
$ emily build
$ emily build
-n my-project-name
-i base
-t ml-api
-e lab
If you want to build a project without automatically starting a docker container use the flag --no-autostart
Emily images
Emily comes with a selection of pre-built images configured for different usecases:
- Basic tasks that include an API (
base
) - Machine learning and data science (
slim
) - Computer vision and image processing (
cv
) - Natural language processing (
nlp
)
Included packages
The Emily images are pre-built with the following packages :
base | slim | cv | nlp |
---|---|---|---|
GCC | base + | slim + | slim + |
Make | GTK | pkg-config | |
CMake | + 8 packages1 | libicu-dev | |
G++ | |||
Python 3.8 with: | Extra Python packages: | Extra Python packages: | Extra Python packages: |
- protobuf | - scikit-learn | - OpenCV | - spacy |
- fastapi | - pandas | - Scikit-Image | - tqdm |
- requests | - numpy | - Tesseract | - typer |
- jupyter | - matplotlib | - Imageio | - textblob |
- tornado | - scipy | - PyWavelets | - wasabi |
- click | - pillow | - imutils | - smart-open |
- loguru | - seaborn | - networkx | - thinc |
- pydantic | - cython | - packaging | - polyglot |
- uvloop | + 4 packages2 | - [imageio] | + 14 packages3 |
- jinja2 | - tifffile | ||
+ 77 packages4 |
The four images may be retrieved ´as-is´ or combined with a deep learning framework such as Tensorflow or PyTorch. Furthermore, the variants may be bundled with CUDA support.
The tables below give an overview of the 20 different variants of the images. Use the --image
option followed by the image name shown in the tables below to specify the image you would like to use.
Images without CUDA
No deep learning framework | Tensorflow | PyTorch | |
---|---|---|---|
Base | base | - | - |
Slim | slim | tf-slim | torch-slim |
Computer Vision | cv | tf-cv | torch-cv |
Natural Language Processing | nlp | tf-nlp | torch-nlp |
CUDA-enabled images
No deep learning framework | Tensorflow | PyTorch | |
---|---|---|---|
Base | cuda-base | - | - |
Slim | cuda-slim | cuda-tf-slim | cuda-torch-slim |
Computer Vision | cuda-cv | cuda-tf-cv | cuda-torch-cv |
Natural Language Processing | cuda-nlp | cuda-tf-nlp | cuda-torch-nlp |
Footnotes
-
Additional packages for the
cv
image: libsm6, libxext6, libglib2.0-0, libsm6, libxrender1, libfontconfig1, libxext6, libgl1 ↩ -
Additional python packages for the
slim
image: joblib, kiwisolver, threadpoolctl, cycler ↩ -
Additional python packages for the
nlp
image: blis, catalogue, corenlp, cymem, langcodes, lemmy, morfessor, murmurhash, pathy, preshed, pycld2, pyicu, regex, srsly ↩ -
Additional python packages for the
base
image:psutil, gunicorn, prompt-toolkit, starlette, uvicorn, python-dotenv, pycodestyle, attrs, websockets, autopep8, pyzmq, urllib3, websocket-client, prometheus-client, pycparser, bleach, flake8, lxml, mistune, PyYAML, python-dateutil, pyrsistent, pyparsing, beautifulsoup4, grpcio, grpcio-tools, pyflakes, babel, pygments, anyio, watchfiles, toml, debugpy, six, decorator, certifi, traitlets, parso, mccabe, pytz, MarkupSafe, pandocfilters, packagingnest-asyncio, argon2-cffi, fastjsonschema, terminado, defusedxml, wcwidth, charset-normalizer, Send2Trash, cffi, executing, ptyprocess, soupsieve, asttokens, json5, tinycss2, typing-extensions, sniffio, entrypoints, pickleshare, webencodings, stack-data, pure-eval, backcall, argon2-cffi-bindings, pexpect, h11, httptools, idna, ipykernel, ipython-genutils, ipywidgets, jedi, jsonschema ↩