You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/src/ecosystem.md
+99-13Lines changed: 99 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,18 +4,104 @@ One of the main strengths of Julia lies in an ecosystem of packages
4
4
globally providing a rich and consistent user experience.
5
5
6
6
This is a non-exhaustive list of Julia packages, nicely complementing `Flux` in typical
7
-
machine learning and deep learning workflows:
8
-
9
-
-[ArgParse.jl](https://github.com/carlobaldassi/ArgParse.jl): package for parsing command-line arguments to Julia programs.
10
-
-[Augmentor.jl](https://github.com/Evizero/Augmentor.jl): a fast image augmentation library in Julia for machine learning.
11
-
-[BSON.jl](https://github.com/JuliaIO/BSON.jl): package for working with the Binary JSON serialisation format
12
-
-[DataFrames.jl](https://github.com/JuliaData/DataFrames.jl): in-memory tabular data in Julia
13
-
-[DrWatson.jl](https://github.com/JuliaDynamics/DrWatson.jl): a scientific project assistant software
14
-
-[MLDatasets.jl](https://github.com/JuliaML/MLDatasets.jl): utility package for accessing common machine learning datasets
15
-
-[OnlineStats.jl](https://github.com/joshday/OnlineStats.jl): single-pass algorithms for statistics
16
-
-[Parameters.jl](https://github.com/mauro3/Parameters.jl): types with default field values, keyword constructors and (un-)pack macros
17
-
-[ProgressMeter.jl](https://github.com/timholy/ProgressMeter.jl): progress meters for long-running computations
18
-
-[TensorBoardLogger.jl](https://github.com/PhilipVinc/TensorBoardLogger.jl): easy peasy logging to [tensorboard](https://www.tensorflow.org/tensorboard) in Julia
19
-
-[ParameterSchedulers.jl](https://github.com/darsnack/ParameterSchedulers.jl): standard scheduling policies for machine learning
7
+
machine learning and deep learning workflows. To add your project please send a [PR](https://github.com/FluxML/Flux.jl/pulls).
8
+
See also academic work citing Flux or Zygote.
9
+
10
+
## Flux models
11
+
12
+
Packages that are actual `Flux` models but are not available directly through the `Flux` package.
13
+
14
+
### Computer vision
15
+
16
+
-[ObjectDetector.jl](https://github.com/r3tex/ObjectDetector.jl) provides ready-to-go image detection via YOLO.
17
+
-[Metalhead.jl](https://github.com/FluxML/Metalhead.jl) includes many state-of-the-art computer vision models which can easily be used for transfer learning.
18
+
-[UNet.jl](https://github.com/DhairyaLGandhi/UNet.jl) is a generic UNet implementation.
19
+
20
+
### Natural language processing
21
+
22
+
-[Transformers.jl](https://github.com/chengchingwen/Transformers.jl) provides components for Transformer models for NLP, as well as providing several trained models out of the box.
23
+
-[TextAnalysis.jl](https://github.com/JuliaText/TextAnalysis.jl) provides several NLP algorithms that use Flux models under the hood.
24
+
25
+
### Reinforcement learning
26
+
27
+
-[AlphaZero.jl](https://github.com/jonathan-laurent/AlphaZero.jl) provides a generic, simple and fast implementation of Deepmind's AlphaZero algorithm.
28
+
-[ReinforcementLearning.jl](https://juliareinforcementlearning.org/) offers a collection of tools for doing reinforcement learning research in Julia.
29
+
30
+
### Graph learning
31
+
32
+
-[GraphNeuralNetworks.jl](https://github.com/CarloLucibello/GraphNeuralNetworks.jl) is a fresh, performant and flexible graph neural network library based on Flux.jl.
33
+
-[GeometricFlux.jl](https://github.com/FluxML/GeometricFlux.jl) is the first graph neural network library for julia.
34
+
-[NeuralOperators.jl](https://github.com/SciML/NeuralOperators.jl) enables training infinite dimensional PDEs by learning a continuous function instead of using the finite element method.
35
+
-[SeaPearl.jl](https://github.com/corail-research/SeaPearl.jl) is a Constraint Programming solver that uses Reinforcement Learning based on graphs as input.
36
+
37
+
### Time series
38
+
39
+
-[FluxArchitectures.jl](https://github.com/sdobber/FluxArchitectures.jl) is a collection of advanced network architectures for time series forecasting.
40
+
41
+
## Tools closely associated with Flux
42
+
43
+
Utility tools you're unlikely to have met if you never used Flux!
44
+
45
+
### High-level training flows
46
+
47
+
-[FastAI.jl](https://github.com/FluxML/FastAI.jl) is a Julia port of Python's fast.ai library.
48
+
-[FluxTraining.jl](https://github.com/FluxML/FluxTraining.jl) is a package for using and writing powerful, extensible training loops for deep learning models. It supports callbacks for many common use cases like hyperparameter scheduling, metrics tracking and logging, checkpointing, early stopping, and more. It powers training in FastAI.jl
49
+
50
+
### Datasets
51
+
52
+
-[MLDatasets.jl](https://github.com/JuliaML/MLDatasets.jl) focuses on downloading, unpacking, and accessing benchmark datasets.
53
+
54
+
### Plumbing
55
+
56
+
Tools to put data into the right order for creating a model.
57
+
58
+
-[Augmentor.jl](https://github.com/Evizero/Augmentor.jl) is a real-time library augmentation library for increasing the number of training images.
59
+
-[DataAugmentation.jl](https://github.com/lorenzoh/DataAugmentation.jl) aims to make it easy to build stochastic, label-preserving augmentation pipelines for vision use cases involving images, keypoints and segmentation masks.
60
+
-[MLUtils.jl](https://github.com/JuliaML/MLUtils.jl) (replaces [MLDataUtils.jl](https://github.com/JuliaML/MLDataUtils.jl) and [MLLabelUtils.jl](https://github.com/JuliaML/MLLabelUtils.jl)) is a library for processing Machine Learning datasets.
61
+
62
+
### Parameters
63
+
64
+
-[Parameters.jl](https://github.com/mauro3/Parameters.jl) types with default field values, keyword constructors and (un-)pack macros.
65
+
-[ParameterSchedulers.jl](https://github.com/darsnack/ParameterSchedulers.jl) standard scheduling policies for machine learning.
66
+
67
+
## Differentiable programming
68
+
69
+
Packages based on differentiable programming but not necessarily related to Machine Learning.
70
+
71
+
- The [SciML](https://sciml.ai/) ecosystem uses Flux and Zygote to mix neural nets with differential equations, to get the best of black box and mechanistic modelling.
72
+
-[DiffEqFlux.jl](https://github.com/SciML/DiffEqFlux.jl) provides tools for creating Neural Differential Equations.
73
+
-[Flux3D.jl](https://github.com/FluxML/Flux3D.jl) shows off machine learning on 3D data.
74
+
-[RayTracer.jl](https://github.com/avik-pal/RayTracer.jl) combines ML with computer vision via a differentiable renderer.
-[OnlineStats.jl](https://github.com/joshday/OnlineStats.jl) provides single-pass algorithms for statistics.
89
+
90
+
## Useful miscellaneous packages
91
+
92
+
Some useful and random packages!
93
+
94
+
-[AdversarialPrediction.jl](https://github.com/rizalzaf/AdversarialPrediction.jl) provides a way to easily optimize generic performance metrics in supervised learning settings using the [Adversarial Prediction](https://arxiv.org/abs/1812.07526) framework.
95
+
-[Mill.jl](https://github.com/CTUAvastLab/Mill.jl) helps to prototype flexible multi-instance learning models.
96
+
-[MLMetrics.jl](https://github.com/JuliaML/MLMetrics.jl) is a utility for scoring models in data science and machine learning.
97
+
-[Torch.jl](https://github.com/FluxML/Torch.jl) exposes torch in Julia.
98
+
-[ValueHistories.jl](https://github.com/JuliaML/ValueHistories.jl) is a utility for efficient tracking of optimization histories, training curves or other information of arbitrary types and at arbitrarily spaced sampling times.
99
+
-[InvertibleNetworks.jl](https://github.com/slimgroup/InvertibleNetworks.jl/) Building blocks for invertible neural networks in the Julia programming language.
100
+
-[ProgressMeter.jl](https://github.com/timholy/ProgressMeter.jl) progress meters for long-running computations.
101
+
-[TensorBoardLogger.jl](https://github.com/PhilipVinc/TensorBoardLogger.jl) easy peasy logging to [tensorboard](https://www.tensorflow.org/tensorboard) in Julia
102
+
-[ArgParse.jl](https://github.com/carlobaldassi/ArgParse.jl) is a package for parsing command-line arguments to Julia programs.
103
+
-[BSON.jl](https://github.com/JuliaIO/BSON.jl) is a package for working with the Binary JSON serialisation format.
104
+
-[DataFrames.jl](https://github.com/JuliaData/DataFrames.jl) in-memory tabular data in Julia.
105
+
-[DrWatson.jl](https://github.com/JuliaDynamics/DrWatson.jl) is a scientific project assistant software.
20
106
21
107
This tight integration among Julia packages is shown in some of the examples in the [model-zoo](https://github.com/FluxML/model-zoo) repository.
0 commit comments