Coder Social home page Coder Social logo

shendlcode / nnvm Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dmlc/nnvm

0.0 1.0 0.0 298 KB

Intermediate Computational Graph Representation for Deep Learning Systems

License: Apache License 2.0

CMake 4.55% Makefile 1.08% Python 14.69% C++ 79.16% Shell 0.52%

nnvm's Introduction

NNVM: Build deep learning system by parts

Build Status GitHub license

NNVM is not a deep learning library. It is a modular, decentralized and lightweight part to help build deep learning libraries.

What is it

While most deep learning systems offer end to end solutions, it is interesting to assemble a deep learning system by parts. The goal is to enable user to customize optimizations, target platforms and set of operators they care about. We believe that the decentralized modular system is an interesting direction.

The hope is that effective parts can be assembled together just like you assemble your own desktops. So the customized deep learning solution can be minimax, minimum in terms of dependencies, while maximizing the users' need.

NNVM offers one such part, it provides a generic way to do computation graph optimization such as memory reduction, device allocation and more while being agnostic to the operator interface definition and how operators are executed. NNVM is inspired by LLVM, aiming to be a high level intermediate representation library for neural nets and computation graphs generation and optimizations.

See Overview for an introduction on what it provides.

Example

See TinyFlow on how you can build a TensorFlow API with NNVM and Torch.

Why build learning system by parts

This is essentially Unix philosophy applied to machine learning system.

  • Essential parts can be assembled in minimum way for embedding systems.
  • Developers can hack the parts they need and compose with other well defined parts.
  • Decentralized modules enable new extensions creators to own their project without creating a monolithic version.

Deep learning system itself is not necessary one part, for example here are some relative independent parts that can be isolated

  • Computation graph definition, manipulation.
  • Computation graph intermediate optimization.
  • Computation graph execution.
  • Operator kernel libraries.
  • Imperative task scheduling and parallel task coordination.

We hope that there will be more modular parts in the future, so system building can be fun and rewarding.

Links

MXNet is moving to NNVM as its intermediate representation layer for symbolic graphs.

nnvm's People

Contributors

tqchen avatar piiswrong avatar yajiedesign avatar jermainewang avatar antinucleon avatar tornadomeet avatar

Watchers

Steel Shen 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.