Flux ist eine Open-Source - Softwarebibliothek und ein Ökosystem für maschinelles Lernen, geschrieben in Julia . [ 1 ] [ 7 ] Die aktuelle stabile Version ist v0.16.5 [ 5 ] Dies auf Wikidata bearbeiten . Flux verwendet eine Layer-Stacking-basierte Schnittstelle für einfachere Modelle und setzt auf starke Interoperabilität mit anderen Julia-Paketen anstelle eines monolithischen Designs. [ 8 ] Beispielsweise wird die GPU-Unterstützung transparent durch CuArrays.jl implementiert. [ 9 ] Dies steht im Gegensatz zu einigen anderen Frameworks für maschinelles Lernen, die in anderen Sprachen mit Julia-Bindings implementiert sind, wie etwa TensorFlow.jl (der inoffizielle Wrapper, der mittlerweile veraltet ist). Dadurch sind sie stärker durch die Funktionalität der zugrundeliegenden Implementierung eingeschränkt, die häufig in C oder C++ geschrieben ist. [ 10 ] Flux ist seit Dezember 2021 ein assoziiertes Projekt von NumFOCUS. [ 11 ]

Der Fokus von Flux auf Interoperabilität hat beispielsweise die Unterstützung neuronaler Differentialgleichungen ermöglicht , indem Flux.jl und DifferentialEquations.jl zu DiffEqFlux.jl zusammengeführt wurden. [ 12 ] [ 13 ]

Flux unterstützt rekurrente und konvolutionelle Netzwerke. Es ist außerdem zur differenzierbaren Programmierung fähig [ 14 ] [ 15 ] [ 16 ] durch sein Source-to-Source- Automatic-Differentiality- Paket Zygote.jl. [ 17 ]

Julia ist eine beliebte Sprache im Bereich des maschinellen Lernens [ 18 ] , und Flux.jl ist das angesehenste Repository für maschinelles Lernen [ 18 ] (Lux.jl ist ein weiteres, neueres Repository, das viel Code mit Flux.jl teilt). Eine Demonstration [ 19 ], die Julia-Code für die Ausführung auf Googles Tensor Processing Unit (TPU) kompilierte, erhielt Lob von Jeff Dean , dem Leiter von Google Brain AI [ 20 ] .

Flux wurde als Framework zum Aufbau neuronaler Netze verwendet, die mit homomorph verschlüsselten Daten arbeiten, ohne diese jemals zu entschlüsseln. [ 21 ] [ 22 ] Solche Anwendungen werden als zentral für den Datenschutz zukünftiger APIs mit Modellen des maschinellen Lernens angesehen. [ 23 ]

Flux.jl ist eine Zwischenrepräsentation für die Ausführung von High-Level-Programmen auf CUDA -Hardware. [ 24 ] [ 25 ] Es war der Vorgänger von CUDAnative.jl, das ebenfalls eine GPU-Programmiersprache ist . [ 26 ]

Siehe auch

Referenzen

  1. ^ a b Innes, Michael (2018-05-03). „Flux: Elegant machine learning with Julia“ . Journal of Open Source Software . 3 (25): 602. Bibcode : 2018JOSS....3..602I . doi : 10.21105/joss.00602 .
  2. ^ Dhairya Gandhi , GitHub, 27.06.2021 , abgerufen am 27.06.2021
  3. ^ Flux-Mitwirkende , GitHub, 27.06.2021 , abgerufen am 27.06.2021
  4. ^ Innes, Mike (2018-05-03). „Flux: Elegantes maschinelles Lernen mit Julia“ . Journal of Open Source Software . 3 (25): 602. Bibcode : 2018JOSS....3..602I . doi : 10.21105/joss.00602 .
  5. ^ a b "Flux v0.16.5" . 23. Juli 2025. Abgerufen am 12. Oktober 2025 .
  6. ^ "github.com/FluxML/Flux.jl/blob/master/LICENSE.md" . GitHub . 6. November 2021.
  7. ^ Innes, Mike; Bradbury, James; Fischer, Keno; Gandhi, Dhairya; Mariya Joy, Neethu; Karmali, Tejan; Kelley, Matt; Kumpel, Avik; Concetto Rudilosso, Marco; Saba, Elliot; Shah, Viral; Yuret, Deniz. „Aufbau einer Sprache und eines Compilers für maschinelles Lernen“ . julialang.org . Abgerufen am 02.06.2019 .
  8. ^ „Maschinelles Lernen und Künstliche Intelligenz“ . juliacomputing.com . Archiviert vom Original am 2. Juni 2019. Abgerufen am 2. Juni 2019 .
  9. ^ Gandhi, Dhairya (15.11.2018). „Julia bei NeurIPS und die Zukunft von Werkzeugen für maschinelles Lernen“ . juliacomputing.com . Archiviert vom Original am 02.06.2019 . Abgerufen am 02.06.2019 .
  10. ^ Malmaud, Jonathan; White, Lyndon (2018-11-01). „TensorFlow.jl: Ein idiomatisches Julia-Frontend für TensorFlow“ . Journal of Open Source Software . 3 (31): 1002. Bibcode : 2018JOSS....3.1002M . doi : 10.21105/joss.01002 .
  11. ^ "Flux <3 NumFOCUS" . fluxml.ai . Archiviert vom Original am 01.12.2021 . Abgerufen am 12.01.2021 .
  12. ^ Rackauckas, Chris; Innes, Mike; Ma, Yingbo; Bettencourt, Jesse; White, Lyndon; Dixit, Vaibhav (2019-02-06). "DiffEqFlux.jl - Eine Julia-Bibliothek für neuronale Differentialgleichungen". arXiv : 1902.02376 [ cs.LG ].
  13. ^ Schlothauer, Sarah (25.01.2019). „Maschinelles Lernen trifft Mathematik: Differentialgleichungen mit der neuen Julia-Bibliothek lösen“ . JAXenter . Abgerufen am 21.10.2019 .
  14. ^ „Flux – Reinforcement Learning vs. Differentiable Programming“ . fluxml.ai . Archiviert vom Original am 27.03.2019 . Abgerufen am 02.06.2019 .
  15. ^ „Flux – Was ist differenzierbare Programmierung?“ . fluxml.ai . Archiviert vom Original am 27.03.2019 . Abgerufen am 02.06.2019 .
  16. ^ Heath, Nick (6. Dezember 2018). „Julia vs. Python: Welche Programmiersprache wird 2019 das maschinelle Lernen dominieren?“ TechRepublic . Abgerufen am 3. Juni 2019 .
  17. ^ Innes, Michael (2018-10-18). „Don't Unroll Adjoint: Differentiating SSA-Form Programs“. arXiv : 1810.07951 [ cs.PL ].
  18. ^ a b Heath, Nick (25. Januar 2019). „GitHub: Die Top 10 Programmiersprachen für maschinelles Lernen“ . TechRepublic . Abgerufen am 3. Juni 2019 .
  19. ^ Saba, Elliot; Fischer, Keno (2018-10-23). ​​„Automatische vollständige Kompilierung von Julia-Programmen und ML-Modellen für Cloud-TPUs“. arXiv : 1810.09868 [ cs.PL ].
  20. ^ Dean, Jeff [@JeffDean] (23.10.2018). „Julia + TPUs = schnelle und einfach darstellbare ML-Berechnungen“ ( Tweet ) . Abgerufen am 02.06.2019 – via Twitter .
  21. ^ Patrawala, Fatema (28.11.2019). „Forschungsteam von Julia Computing wendet maschinelles Lernmodell auf verschlüsselte Daten an, ohne sie zu entschlüsseln“ . Packt Hub . Abgerufen am 11.12.2019 .
  22. ^ „Maschinelles Lernen auf verschlüsselten Daten ohne Entschlüsselung“ . juliacomputing.com . 22.11.2019. Archiviert vom Original am 03.12.2019 . Abgerufen am 11.12.2019 .
  23. ^ Yadav, Rohit (2019-12-02). „Julia Computing nutzt homomorphe Verschlüsselung für ML. Ist das der richtige Weg?“ . Analytics India Magazine . Abgerufen am 11.12.2019 .
  24. ^ Roesch, Jared und Lyubomirsky, Steven und Kirisame, Marisa und Pollock, Josh und Weber, Logan und Jiang, Ziheng und Chen, Tianqi und Moreau, Thierry und Tatlock, Zachary (2019). „Relay: Ein High-Level-IR für Deep Learning“. arXiv : 1904.08368 [ cs.LG ].{{cite arXiv}}: CS1 Wartung: Mehrere Namen: Autorenliste ( Link )
  25. ^ Tim Besard, Christophe Foket und Bjorn De Sutter (2019). „Effektives erweiterbares Programmieren: Julia auf GPUs“. IEEE Transactions on Parallel and Distributed Systems . 30 (4). Institute of Electrical and Electronics Engineers (IEEE): 827–841 . arXiv : 1712.03112 . Bibcode : 2019ITPDS..30..827B . doi : 10.1109 / tpds.2018.2872064 . S2CID 11827394 . 
  26. ^ Besard, Tim (2018). Abstraktionen für die Programmierung von Grafikprozessoren in höheren Programmiersprachen (Dissertation). Universität Gent.