GitHub - FluxML/model-zoo: Please do not feed the models (original) (raw)

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

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:

Create or improve documentation

You can contribute in one of the following ways

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: