• Stars
    star
    878
  • Rank 49,995 (Top 2 %)
  • Language
    Julia
  • License
    Other
  • Created almost 7 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Please do not feed the models

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.14 is the latest right now, this and v0.13 are marked with ☀️; models upgraded to use
explicit gradients (v0.13.9+ or v0.14) 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:

More Repositories

1

Flux.jl

Relax! Flux is the ML library that doesn't make you tensor
Julia
4,359
star
2

Zygote.jl

21st century AD
Julia
1,431
star
3

FastAI.jl

Repository of best practices for deep learning in Julia, inspired by fastai
Julia
578
star
4

GeometricFlux.jl

Geometric Deep Learning for Flux
Julia
348
star
5

Metalhead.jl

Computer vision models for Flux
Julia
314
star
6

MacroTools.jl

MacroTools provides a library of tools for working with Julia code and expressions.
Julia
301
star
7

Torch.jl

Sensible extensions for exposing torch in Julia.
Julia
200
star
8

NNlib.jl

Neural Network primitives with multiple backends
Julia
188
star
9

MLJFlux.jl

Wrapping deep learning models from the package Flux.jl for use in the MLJ.jl toolbox
Julia
137
star
10

ONNX.jl

Read ONNX graphs in Julia
Julia
137
star
11

FluxTraining.jl

A flexible neural net training library inspired by fast.ai
Julia
114
star
12

IRTools.jl

Mike's Little Intermediate Representation
Julia
107
star
13

Functors.jl

Parameterise all the things
Julia
107
star
14

Flux3D.jl

3D computer vision library in Julia
Julia
100
star
15

Mjolnir.jl

A little less conversation, a little more abstraction
Julia
87
star
16

Optimisers.jl

Optimisers.jl defines many standard optimisers and utilities for learning loops.
Julia
68
star
17

DaggerFlux.jl

Distributed computation of differentiation pipelines to use multiple workers, devices, GPU, etc. since Julia wasn't fast enough already
Julia
65
star
18

Gym.jl

Gym environments in Julia
Julia
54
star
19

FluxML-Community-Call-Minutes

The FluxML Community Team repo
51
star
20

XLA.jl

"Maybe we have our own magic."
Julia
47
star
21

Tracker.jl

Flux's ex AD
Julia
44
star
22

FluxJS.jl

I heard you like compile times
Julia
42
star
23

DataAugmentation.jl

Flexible data augmentation library for machine and deep learning
Julia
41
star
24

HuggingFaceApi.jl

Julia
33
star
25

Hydra.jl

SPMD + Neural Nets
Julia
31
star
26

ParameterSchedulers.jl

Common hyperparameter scheduling for ML
Julia
28
star
27

Alloc.jl

Julia
26
star
28

Trebuchet.jl

throw stuff
Julia
21
star
29

fluxml.github.io

Flux Website
HTML
20
star
30

YaoFlux.jl

Differentiable programming on quantum circuits with Flux
Julia
19
star
31

OneHotArrays.jl

Memory efficient one-hot array encodings
Julia
17
star
32

ZygoteRules.jl

Julia
15
star
33

FluxBench.jl

Benchmarks for the FluxML ecosystem for deep learning, scientific machine learning, differentiable programming etc including AD and CUDA accelerated workloads
Julia
14
star
34

NNlibCUDA.jl

CUDA integration for the NNlib API
Julia
14
star
35

DiffImages.jl

Differentiable Computer Vision using pure Julia
Julia
14
star
36

Fluxperimental.jl

Experimental features for Flux.jl
Julia
13
star
37

SafeTensors.jl

Julia
8
star
38

MetalheadWeights

Pre-trained model weight artifacts for Metalhead.jl
Julia
7
star
39

FluxMLBenchmarks.jl

A benchmarking suite for the FluxML org
Julia
6
star
40

IArrays.jl

Julia
5
star
41

differentiable.dev

HTML
3
star
42

FluxCUDA.jl

Julia
3
star
43

FluxMLDocs

Unified documentation across the FluxML ecosystem
Julia
1
star
44

.github

Repository for default community health files
1
star