Giter Club home page Giter Club logo

jetnet's Introduction

JetNet

What models or features are you interested in seeing in JetNet? Let us know!

JetNet is a collection of models, datasets, and tools that make it easy to explore neural networks on NVIDIA Jetson (and desktop too!). It can easily be used and extended with Python.

Check out the documentation to learn more and get started!

It's easy to use

JetNet comes with tools that allow you to easily build, profile and demo models. This helps you easily try out models to see what is right for your application.

jetnet demo jetnet.trt_pose.RESNET18_HAND_224X224_TRT_FP16

It's implementation agnostic

JetNet has well defined interfaces for tasks like classification, detection, pose estimation, and text detection. This means models have a familiar interface, regardless of which framework they are implemented in. As a user, this lets you easily use a variety of models without re-learning a new interface for each one.

class PoseModel:
    
    def init(self):
        pass
        
    def get_keypoints(self) -> Sequence[str]:
        raise NotImplementedError

    def get_skeleton(self) -> Sequence[Tuple[int, int]]:
        raise NotImplementedError

    def __call__(self, index: Image) -> PoseSet:
        raise NotImplementedError

It's highly reproducible and configurable

JetNet uses well-defined configurations to explicitly describe all the steps needed to automatically re-produce a model. This includes steps like downloading weights, downloading calibration data and optimizing with TensorRT, that often aren't captured in open-source model definitons. These configurations are defined with pydantic using JSON serializable so they can be easily validated, modified, exported, and re-used.

For example, the following models, which include TensorRT optimization can be re-created with a single line

from jetnet.yolox import YOLOX_NANO_TRT_FP16

model = YOLOX_NANO_TRT_FP16.build()

It's easy to set up

JetNet comes with pre-built docker containers for Jetson and Desktop. In case these don't work for you, manual setup instructions are provided. Check out the documentation for details.

It's extensible

JetNet is written with Python so that it is easy to extend. If you want to use the JetNet tools with a different model, or are considering contributing to the project to help other developers easily use your model, all you need to do is implement one of the JetNet interfaces and define a config for re-creating the model.

For example, here's how we might define a new classification model

from pydantic import PrivateAttr

class CatDogModel(ClassificationModel):
    
    num_layers: int

    # private attributes can be non-JSON types, like a PyTorch module
    _torch_module = PrivateAttr()
    
    def init(self):
        # code to initialize model for execution

    def get_labels(self) -> Sequence[str]:
        return ["cat", "dog"]

    def __call__(self, x: Image) -> Classification:
        # code to classify image

CATDOG_SMALL = CatDogModel(num_layers=10)
CATDOG_BIG = CatDogModel(num_layers=50)

We can then use the model with JetNet tools.

jetnet demo cat_dog.CATDOG_SMALL

Get Started!

Head on over the documentation to learn more and get started!

jetnet's People

Contributors

jaybdub avatar

Watchers

James Cloos 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.