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@latestSee 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-startedEmily: An Emily template is a pre-built template containingessential boilerplate code useful in the development ofmicroservices.These templates include relevant endpoints depending onwhich template you choose.? Emily: Which Emily template do you want to use?(Use arrow keys, confirm with ENTER) … > Default - Minimal project with hello world scriptAPI - Simple project with API set up and readyMachine learning [API, DVC, MLFlow, Pytorch] - Machine learning template with API, Data version control (DVC), MLFlow experiment reporting and pytorchMachine learning API [API, Pytorch] - Machine learning template with API and pytorchMachine learning [gRPC] - Machine learning template with gRPCMachine Learning Reporting - Machine learning reporting template · DefaultEmily: An Emily image is a pre-built docker image containingessential packages that are useful in the development ofmicroservices.These images include relevant packages depending on whichtype 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 VisionNatural Language Processing · Base? Emily: Which editor do you want to use?(Use arrow keys, confirm with ENTER) … Visual Studio Code> PyCharmJupyter NotebookJupyter Lab · PyCharmEmily: 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 labIf 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
cvimage: libsm6, libxext6, libglib2.0-0, libsm6, libxrender1, libfontconfig1, libxext6, libgl1 ↩ -
Additional python packages for the
slimimage: joblib, kiwisolver, threadpoolctl, cycler ↩ -
Additional python packages for the
nlpimage: blis, catalogue, corenlp, cymem, langcodes, lemmy, morfessor, murmurhash, pathy, preshed, pycld2, pyicu, regex, srsly ↩ -
Additional python packages for the
baseimage: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 ↩