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.
The zoo comes with its own Julia project, which lists the packages you need to run the models. You can run the models by opening Julia in the project folder and running
using Pkg; Pkg.activate("."); Pkg.instantiate()
to install all needed packages. 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.
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.
We welcome contributions of new models and documentation.
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.
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.
- Vision
- Text
- Other & contributed models
- Tutorials