Git Product home page Git Product logo

model-zoo's Introduction

Flux Model Zoo

This repository contains various demonstrations of the Flux machine learning library. Any of these may freely be used as a starting point for your own models.

The models are broadly categorised into the folders vision (e.g. large convolutional neural networks (CNNs)), text (e.g. various recurrent neural networks (RNNs) and natural language processing (NLP) models), games (Reinforcement Learning / RL). See the READMEs of respective models for more information.

Usage

Each model comes with its own Julia project. To use this, open Julia in the project folder, and enter

using Pkg; Pkg.activate("."); Pkg.instantiate()

This will install all needed packages, at the exact versions when the model was last updated. Then you can run the model code with include("<model-to-run>.jl"), or by running the model script line-by-line.

Models may also be run with NVIDIA GPU support, if you have a CUDA installed. Most models will have this capability by default, pointed at by calls to gpu in the model code.

Gitpod Online IDE

Each model can be used in Gitpod, just open the repository by gitpod

  • Based on Gitpod's policies, free access is limited.
  • All of your work will place in the Gitpod's cloud.
  • It isn't an officially maintained feature.

Contributing

We welcome contributions of new models and documentation.

Share a new model

If you want to share a new model, we suggest you follow these guidelines:

  • Models should be in a folder with a project and manifest file to pin all relevant packages.
  • Models should include a README(.md) to explain what the model is about, how to run it, and what results it achieves (if applicable).
  • Models should ideally be CPU/GPU agnostic and not depend directly on GPU functionality.
  • Please keep the code short, clean, and self-explanatory, with as little boilerplate as possible.

Create or improve documentation

You can contribute in one of the following ways

  • Add or improve documentation to existing models: Write the following information:
    • Give a brief introduction to the model’s architecture and the goal it archives.
    • Describe the Flux API that the model demonstrates (high-level API, AD, custom operations, custom layers, etc.).
    • Add literature background for the model. More specifically, add articles, blog posts, videos, and any other resource that is helpful to better understand the model.
    • Mention the technique that is being demonstrated. Briefly describe the learning technique being demonstrated (Computer vision, regression, NLP, time series, etc.).
  • Write in-depth tutorials for a model: You can further extend the documentation of a model and create a tutorial to explain in more detail the architecture, the training routine, use your own data, and so forth. After you write a tutorial, create a PR with it for the Tutorials section on the FluxML website.

Update a model

Each example lists the version of Flux for which it was most recently updated. Bringing them up to the latest is a great way to learn! Flux has a NEWS page listing important changes. (For other packages, see their releses page: MLUtils, MLDatasets, etc.)

To run the old examples, Flux v0.11 can be installed and run on Julia 1.6, the LTS version. Flux v0.12 works on Julia 1.8. Flux v0.13 is the latest right now, marked with ☀️; models upgraded to use explicit gradients (v0.13.9+) have a +.

Examples in the Model Zoo

Vision

Text

Other & contributed models

Tutorials

Examples Elsewhere

MLJFlux is a bridge to MLJ.jl, a package for mostly non-neural-network machine learning. They have some examples of interest, which like the model zoo's examples, each include a local Project & Manifest file:

model-zoo's People

Contributors

adarshkumar712 avatar adinhobl avatar aditkumar72 avatar avik-pal avatar carlolucibello avatar chrisrackauckas avatar dhairyalgandhi avatar fishares avatar iblislin avatar jakee417 avatar jldc avatar joostdup avatar joshuawhittemore avatar kraftpunk97 avatar lilianabs avatar logankilpatrick avatar luboshanus avatar maetshju avatar matsueushi avatar mcabbott avatar mcognetta avatar mikeinnes avatar roboneet avatar saswatpp avatar shreyas-kowshik avatar staticfloat avatar sudhanshuagrawal27 avatar tejank10 avatar touchesir avatar willtebbutt avatar

Watchers

 avatar  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.