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
+86-13Lines changed: 86 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,18 +4,91 @@ 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
+
## Advanced models
11
+
12
+
-[FluxArchitectures.jl](https://github.com/sdobber/FluxArchitectures.jl) is a collection of slightly more advanced network architectures.
13
+
14
+
## Computer vision
15
+
16
+
-[ObjectDetector.jl](https://github.com/r3tex/ObjectDetector.jl) provides ready-to-go image analysis 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
+
## Datasets
21
+
22
+
-[MLDatasets.jl](https://github.com/JuliaML/MLDatasets.jl) focuses on downloading, unpacking, and accessing benchmark datasets.
23
+
24
+
## Differentiable programming
25
+
26
+
- 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.
27
+
-[DiffEqFlux.jl](https://github.com/SciML/DiffEqFlux.jl) provides tools for creating Neural Differential Equations.
28
+
-[Flux3D.jl](https://github.com/FluxML/Flux3D.jl) shows off machine learning on 3D data.
29
+
-[RayTracer.jl](https://github.com/avik-pal/RayTracer.jl) combines ML with computer vision via a differentiable renderer.
- The [Yao.jl](https://github.com/QuantumBFS/Yao.jl) project uses Flux and Zygote for Quantum Differentiable Programming.
32
+
-[AtomicGraphNets.jl](https://github.com/Chemellia/AtomicGraphNets.jl) enables learning graph based models on atomic systems used in chemistry.
33
+
-[DiffImages.jl](https://github.com/SomTambe/DiffImages.jl) differentiable computer vision modeling in Julia with the Images.jl ecosystem.
34
+
35
+
## Graph learning
36
+
37
+
-[GeometricFlux.jl](https://github.com/FluxML/GeometricFlux.jl) makes it easy to build fast neural networks over graphs.
38
+
-[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.
39
+
-[SeaPearl.jl](https://github.com/corail-research/SeaPearl.jl) is a Constraint Programming solver that uses Reinforcement Learning based on graphs as input.
40
+
41
+
## Natural language processing
42
+
43
+
-[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.
44
+
-[TextAnalysis.jl](https://github.com/JuliaText/TextAnalysis.jl) provides several NLP algorithms that use Flux models under the hood.
45
+
46
+
## Pipeline extensions
47
+
48
+
-[DLPipelines.jl](https://github.com/lorenzoh/DLPipelines.jl) is an interface for defining deep learning data pipelines.
49
+
50
+
## Plumbing
51
+
52
+
Tools to put data into the right order for creating a model.
53
+
54
+
-[Augmentor.jl](https://github.com/Evizero/Augmentor.jl) is a real-time library augmentation library for increasing the number of training images.
55
+
-[DataAugmentation.jl](https://github.com/lorenzoh/DataAugmentation.jl) aims to make it easy to build stochastic label-preserving augmentation pipelines for your datasets.
56
+
-[MLDataUtils.jl](https://github.com/JuliaML/MLDataUtils.jl) is a utility for generating, loading, partitioning, and processing Machine Learning datasets.
57
+
-[MLLabelUtils.j](https://github.com/JuliaML/MLLabelUtils.jl) is a utility for working with classification targets. It provides the necessary functionality for interpreting class-predictions, as well as converting classification targets from one encoding to another.
58
+
59
+
## Probabilistic programming
60
+
61
+
-[Turing.jl](https://github.com/TuringLang/Turing.jl) extends Flux's differentiable programming capabilities to probabilistic programming.
62
+
-[Omega.jl](https://github.com/zenna/Omega.jl) is a research project aimed at causal, higher-order probabilistic programming.
-[AlphaZero.jl](https://github.com/jonathan-laurent/AlphaZero.jl) provides a generic, simple and fast implementation of Deepmind's AlphaZero algorithm.
68
+
-[ReinforcementLearning.jl](https://juliareinforcementlearning.org/) offers a collection of tools for doing reinforcement learning research in Julia.
69
+
70
+
## Parameters
71
+
72
+
-[Parameters.jl](https://github.com/mauro3/Parameters.jl) types with default field values, keyword constructors and (un-)pack macros.
73
+
-[ParameterSchedulers.jl](https://github.com/darsnack/ParameterSchedulers.jl) standard scheduling policies for machine learning.
74
+
75
+
## Statistics
76
+
77
+
-[OnlineStats.jl](https://github.com/joshday/OnlineStats.jl) provides single-pass algorithms for statistics.
78
+
79
+
## Miscellaneous
80
+
81
+
-[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.
82
+
-[Mill.jl](https://github.com/CTUAvastLab/Mill.jl) helps to prototype flexible multi-instance learning models.
83
+
-[MLMetrics.jl](https://github.com/JuliaML/MLMetrics.jl) is a utility for scoring models in data science and machine learning.
84
+
-[Torch.jl](https://github.com/FluxML/Torch.jl) exposes torch in Julia.
85
+
-[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.
86
+
-[InvertibleNetworks.jl](https://github.com/slimgroup/InvertibleNetworks.jl/) Building blocks for invertible neural networks in the Julia programming language.
87
+
-[ProgressMeter.jl](https://github.com/timholy/ProgressMeter.jl) progress meters for long-running computations.
88
+
-[TensorBoardLogger.jl](https://github.com/PhilipVinc/TensorBoardLogger.jl) easy peasy logging to [tensorboard](https://www.tensorflow.org/tensorboard) in Julia
89
+
-[ArgParse.jl](https://github.com/carlobaldassi/ArgParse.jl) is a package for parsing command-line arguments to Julia programs.
90
+
-[BSON.jl](https://github.com/JuliaIO/BSON.jl) is a package for working with the Binary JSON serialisation format.
91
+
-[DataFrames.jl](https://github.com/JuliaData/DataFrames.jl) in-memory tabular data in Julia.
92
+
-[DrWatson.jl](https://github.com/JuliaDynamics/DrWatson.jl) is a scientific project assistant software.
20
93
21
94
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