Coder Social home page Coder Social logo

k2m5t2 / olive Goto Github PK

View Code? Open in Web Editor NEW

This project forked from microsoft/olive

0.0 0.0 0.0 84.83 MB

Olive is an easy-to-use hardware-aware model optimization tool that composes industry-leading techniques across model compression, optimization, and compilation.

License: MIT License

Shell 0.29% C++ 0.40% Python 98.36% C# 0.41% PowerShell 0.08% Makefile 0.13% Batchfile 0.22% Dockerfile 0.10%

olive's Introduction

Olive

Olive is an easy-to-use hardware-aware model optimization tool that composes industry-leading techniques across model compression, optimization, and compilation. Given a model and targeted hardware, Olive composes the best suitable optimization techniques to output the most efficient model(s) for inferring on cloud or edge, while taking a set of constraints such as accuracy and latency into consideration.

Since every ML accelerator vendor implements their own acceleration tool chains to make the most of their hardware, hardware-aware optimizations are fragmented. With Olive, we can:

Reduce engineering effort for optimizing models for cloud and edge: Developers are required to learn and utilize multiple hardware vendor-specific toolchains in order to prepare and optimize their trained model for deployment. Olive aims to simplify the experience by aggregating and automating optimization techniques for the desired hardware targets.

Build up a unified optimization framework: Given that no single optimization technique serves all scenarios well, Olive enables an extensible framework that allows industry to easily plugin their optimization innovations. Olive can efficiently compose and tune integrated techniques for offering a ready-to-use E2E optimization solution.

Get Started and Resources

Installation

We recommend installing Olive in a virtual environment or a conda environment. Olive is installed using pip.

Create a virtual/conda environment with the desired version of Python and activate it.

You will need to install a build of onnxruntime. You can install the desired build separately but public versions of onnxruntime can also be installed as extra dependencies during Olive installation.

Install with pip

Olive is available for installation from PyPI.

pip install olive-ai

With onnxruntime (Default CPU):

pip install olive-ai[cpu]

With onnxruntime-gpu:

pip install olive-ai[gpu]

With onnxruntime-directml:

pip install olive-ai[directml]

Optional Dependencies

Olive has optional dependencies that can be installed to enable additional features. These dependencies can be installed as extras:

  • azureml: To enable AzureML integration. Packages: azure-ai-ml, azure-identity
  • docker: To enable docker integration. Packages: docker
  • openvino: To use OpenVINO related passes. Packages: openvino==2022.3.0, openvino-dev[tensorflow,onnx]==2022.3.0

Contributing

We’d love to embrace your contribution to Olive. Please refer to CONTRIBUTING.md.

Formatting

Olive uses pre-commit hooks to check and format code. To install the pre-commit hooks, run the following commands from the root of the repository:

# install pre-commit and other dev requirements
python -m pip install pre-commit
# install the git hook scripts
pre-commit install
# for the first time, run on all files
pre-commit run --all-files

Every time you make a git commit, the hooks will automatically point out issues in code for changed files and fix them if possible.

License

Copyright (c) Microsoft Corporation. All rights reserved.

Licensed under the MIT License.

olive's People

Contributors

leqiao-1 avatar liuziyue avatar jambayk avatar trajepl avatar xiaoyu-work avatar guotuofeng avatar dependabot[bot] avatar devang-ml avatar jstoecker avatar patricevignola avatar shaahji avatar yuwenzho avatar sheng-xiao avatar harishsk avatar mreyesgomez avatar wangyems avatar jcwchen avatar dabh avatar emmaningms avatar natke avatar cly1st avatar lainey1570 avatar microsoft-github-policy-service[bot] avatar porcupineyhairs avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.