TensorFlow

Izvor: Wikipedija
Prijeđi na navigaciju Prijeđi na pretragu
Tensorflow
TensorFlow logo
TensorFlow logo


Vrsta: Biblioteka za Mašinsko učenje
Web stranica: https://www.tensorflow.org/

TensorFlow je besplatna softverska biblioteka otvorenog koda za mašinsko učenje i veštačku inteligenciju . Može se koristiti za različite zadatke, ali ima poseban fokus na obučavanje i inferenciju dubokih neuronskih mreža . [1]

Razvio ga je tim iz Google Brain-a za Google-ovu internu upotrebu u istraživanju i proizvodnji. [2] [3] [4] Početna verzija je objavljena pod Apache License 2.0 2015. [5] [6] Google je objavio ažuriranu verziju, TensorFlow 2.0, u septembru 2019. [7]

TensorFlow se može koristiti u velikom broju programskih jezika, uključujući Python, JavaScript, C++ i Javu, [8] što olakšava njegovu upotrebu u nizu aplikacija u mnogim sektorima.

Karakteristike

[uredi | uredi kod]

AutoDifferentiation

[uredi | uredi kod]

AutoDifferentiation je proces automatskog izračunavanja gradijenta modela u odnosu na svaki od njegovih parametara. Uz ovu funkciju, TensorFlow može automatski izračunati gradijente za parametre u modelu, što je korisno za algoritme kao što su propagacija unazad koja zahtijeva gradijente za optimizaciju performansi modela. [9] Da bi to uradio, TensorFlow mora da prati redosled operacija izvršenih na ulaznim tenzorima u modelu, a zatim da izračuna gradijente u odnosu na odgovarajuće parametre. [9]

Eager execution

[uredi | uredi kod]

TensorFlow uključuje režim “nestrpljivog izvršavanja”, što znači da se operacije procjenjuju odmah za razliku od kreiranja tkz. "grafa" koji se izvršava nakon što se ceo kod kompajlira. [10] Kod koji se izvršava "eager" može da se lakše debaguje.Ovo se dešava jer podaci se mogu procesuirati u svakoj liniji koda, a ne kasnije u računarskom grafu. [10] Smatra se da je ova paradigma izvršenja lakša za otklanjanje grešaka zbog njenog pristupa od korak po korak. [10]

Distribuiranje

[uredi | uredi kod]

I u nestrpljivom, i u grafskom izvršavanju, TensorFlow pruža mogućnost distribucije izračunavanja na više uređaja s različitim strategijama distribucije, preko svog API-ja. [11] Ovo distribuirano računarstvo često može ubrzati izvođenje obuke i evaluacije TensorFlow modela i uobičajena je praksa u oblasti AI. [11] [12]

Funkcije cene

[uredi | uredi kod]

Za obuku i procjenu modela, TensorFlow pruža skup funkcija cene (također poznate kao funkcije greške ). [13] Neki popularni primjeri uključuju srednju kvadratnu grešku (MSE) i binarnu unakrsnu entropiju (BCE). [13]

Metrike

[uredi | uredi kod]

Za procjenu performansi modela mašinskog učenja, TensorFlow daje API pristup često korištenim metrikama. Primjeri uključuju različite metrike točnosti (binarne, kategoričke, razređene odnosno "sparse" kategorične) zajedno s drugim metrikama kao što su Precision, Recall i Intersection-over-Union (IoU). [14]

TF.nn

[uredi | uredi kod]

TensorFlow.nn je modul za izvršavanje primitivnih operacija neuronske mreže na modelima. [15] Neke od ovih operacija uključuju varijacije konvolucija (1/2/3D, Atrous, dubinske), funkcije aktivacije ( Softmax, RELU, GELU, Sigmoid, itd.) i njihove varijacije, kao i druge operacije ( max-pooling, bias-add, itd.). [15]

Optimizatori

[uredi | uredi kod]

TensorFlow nudi skup optimizatora za obuku neuronskih mreža, uključujući ADAM, ADAGRAD i Stohastički Opadajući Gradijent (SGD). [16] Kada trenirate model, različiti optimizatori nude različite načine podešavanja parametara, često utičući na konvergenciju i performanse modela. [17]

Upotreba i

[uredi | uredi kod]

TensorFlow

[uredi | uredi kod]

TensorFlow služi kao jedna od najpopularnijih platforma i biblioteka za mašinsko učenje. TensorFlow API-ji koriste Keras kako bi omogućili korisnicima da naprave sopstvene modele mašinskog učenja. [18] Pored izgradnje i obuke njihovog modela, TensorFlow takođe može pomoći u učitavanju podataka za obuku modela i implementaciji pomoću TensorFlow Servinga. [19]

TensorFlow pruža stabilan Python aplikacijski programski interfejs ( API ), [20] kao i API-je bez povratne garancije kompatibilnosti za Javascript, [21] C++, [22] i Javu . [23] [8] Paketi za povezivanje jezika treće strane su također dostupni za C#, [24] [25] Haskell, [26] Julia, [27] MATLAB, [28] Object Pascal, [29] R, [30] Scala, [31] Rust, [32] OCaml, [33] i Crystal . [34] Opcije koje su sada arhivirane i nepodržane, uključuju Go [35] i Swift . [36]

TensorFlow.js

[uredi | uredi kod]

TensorFlow takođe ima biblioteku za mašinsko učenje u JavaScript-u. Koristeći obezbeđene JavaScript API-je, TensorFlow.js omogućava korisnicima da koriste ili Tensorflow.js modele ili konvertovane modele iz TensorFlow ili TFLite, da ponovo obuče date modele i zatim ih pokreću na svojoj veb aplikaciji. [19] [37]

TFLite

[uredi | uredi kod]

TensorFlow Lite sadrži API-je za mobilne aplikacije ili ugrađene(embedded) uređaje za kreiranje i implementaciju TensorFlow modela. [38] Ovi modeli su komprimovani i optimizirani kako bi bili efikasniji i imali veće performanse na uređajima manjeg kapaciteta. [39]

TensorFlow Lite koristi FlatBuffers kao format serijalizacije podataka za mrežne modele, izbjegavajući format Protocol Buffers koji koriste standardni TensorFlow modeli. [39]

TensorFlow Extended (skraćeno TFX) pruža brojne komponente za obavljanje svih operacija potrebnih za proizvodnju od kraja do kraja. [40] Komponente uključuju učitavanje, provjeru valjanosti i transformaciju podataka, podešavanje, obuku i evaluaciju modela mašinskog učenja, te guranje samog modela u proizvodnju. [19] [40]

Integracije

[uredi | uredi kod]

Numpy

[uredi | uredi kod]

Numpy je jedna od najpopularnijih Python biblioteka podataka, i TensorFlow nudi integraciju i kompatibilnost sa svojim funkcionalnostima. [41] Numpy NDarrays, jedan od glavnih tipova podataka biblioteke, automatski se konvertuju u TensorFlow tenzore u TF operacijama; kao i obrnuto. [41] Ovo omogućava da dvije biblioteke rade zajednički bez potrebe da korisnik piše eksplicitne konverzije podataka. Štaviše, integracija se proširuje na optimizaciju memorije tako što TF Tensors dijele osnovne memorijske reprezentacije Numpy NDarray-a kad god je to moguće. [41]

Ekstenzije

[uredi | uredi kod]

TensorFlow također nudi razne biblioteke i ekstenzije za unapređenje i proširenje broja modela i metoda koje se koriste. [42] Na primjer, TensorFlow Recommenders i TensorFlow Graphics su biblioteke za njihove odgovarajuće funkcionalnosti u sistemima preporuke i grafici, TensorFlow Federated pruža okvir za decentralizirane podatke, a TensorFlow Cloud omogućava korisnicima direktnu interakciju s Google Cloudom kako bi integrirali svoj lokalni kod u Google Cloud. [43] Ostali dodaci, biblioteke i okviri uključuju TensorFlow Model Optimization, TensorFlow Probability, TensorFlow Quantum i TensorFlow Decision Trees. [42] [43]

Google Colab

[uredi | uredi kod]

Google je također objavio Colaboratory, TensorFlow Jupyter notebook okruženje koje ne zahtijeva nikakvo podešavanje. [44] Korisniku ovo omogućava korišćenje TensorfFlow biblioteka na Google Cloud-u i omogućava besplatan pristup GPU-ima i mogućnost skladištenja i dijeljenja tkz. "notebook"-ova na Google Drive-u . [45]

Google JAX

[uredi | uredi kod]

Google JAX je framework za mašinsko učenje koje se koristi za transformaciju numeričkih funkcija. [46] [47] [48] Opisuje se kao spoj modifikovane verzije autograd (automatsko dobijanje funkcije gradijenta kroz diferencijaciju funkcije) i TensorFlow XLA (ubrzana linearna algebra). Dizajniran je da prati strukturu i radni tok NumPy-a što je bliže moguće i radi sa TensorFlow-om kao i drugim okvirima kao što je PyTorch . Primarne funkcije JAX-a su: [46]

  1. grad: automatska diferencijacija
  2. jit: kompilacija
  3. vmap: auto-vektorizacija
  4. pmap: SPMD programiranje

Prijave

[uredi | uredi kod]

Medicinski

[uredi | uredi kod]

GE Healthcare je koristio TensorFlow da poveća brzinu i tačnost magnetne rezonance u identifikaciji određenih delova tela. [49] Google je koristio TensorFlow da kreira DermAssist, besplatnu mobilnu aplikaciju koja korisnicima omogućava da slikaju svoju kožu i identifikuju potencijalne zdravstvene komplikacije. [50] Sinovation Ventures je koristio TensorFlow za identifikaciju i klasifikaciju očnih bolesti iz skeniranja optičke koherentne tomografije (OCT). [50]

Društveni mediji

[uredi | uredi kod]

Twitter je implementirao TensorFlow da rangira tweetove po važnosti za datog korisnika i promijenio njihovu platformu da prikazuje tvitove prema ovom rangiranju. [51] Ranije su tvitovi jednostavno prikazivani obrnutim hronološkim redom. [51] Aplikacija za dijeljenje fotografija VSCO koristila je TensorFlow kako bi predložila prilagođene filtere za fotografije. [50]

Pretraživač

[uredi | uredi kod]

Google je zvanično objavio RankBrain 26. oktobra 2015. uz podršku TensorFlow-a. [52]

Obrazovanje

[uredi | uredi kod]

InSpace, virtuelna platforma za učenje, koristila je TensorFlow za filtriranje toksičnih poruka za ćaskanje u učionicama. [53] Liulishuo, online platforma za učenje engleskog jezika, koristila je TensorFlow za kreiranje prilagodljivog nastavnog plana i programa za svakog učenika. [54] TensorFlow je korišten za preciznu procjenu sposobnosti učenika, a također je pomogao u odlučivanju o daljem prikazivanju sadržaja na osnovu tih sposobnosti. [54]

Maloprodaja

[uredi | uredi kod]

Platforma za e-trgovinu Carousell koristila je TensorFlow za pružanje personaliziranih preporuka za kupce. [50] Kozmetička kompanija ModiFace koristila je TensorFlow da stvori iskustvo proširene stvarnosti za kupce kako bi testirali različite nijanse šminke na svom licu. [55]  

Istraživanja

[uredi | uredi kod]

TensorFlow je osnova za automatizovani softver za titlovanje slika DeepDream . [56]

Povezano

[uredi | uredi kod]

Izvori

[uredi | uredi kod]
  1. „TensorFlow: A System for Large-Scale Machine Learning”. Pristupljeno October 26, 2020. 
  2. Video clip by Google about TensorFlow 2015 at minute 0:15/2:17
  3. Video clip by Google about TensorFlow 2015 at minute 0:26/2:17
  4. Dean et al 2015
  5. „Credits”. TensorFlow.org. Arhivirano iz originala na datum November 17, 2015. Pristupljeno November 10, 2015. 
  6. „Google Just Open Sourced TensorFlow, Its Artificial Intelligence Engine”. Wired. Arhivirano iz originala na datum November 9, 2015. Pristupljeno November 10, 2015. 
  7. „TensorFlow 2.0 is now available!”. Medium. Arhivirano iz originala na datum October 7, 2019. Pristupljeno 2019-11-24. 
  8. 8,0 8,1 „API Documentation”. Arhivirano iz originala na datum November 16, 2015. Pristupljeno 2018-06-27. "API Documentation". Archived from the original on November 16, 2015. Retrieved June 27, 2018., Greška u referenci: Nevaljana oznaka <ref>; naziv ":13" je zadan više puta s različitim sadržajem
  9. 9,0 9,1 „Introduction to gradients and automatic differentiation”. TensorFlow. Arhivirano iz originala na datum October 28, 2021. Pristupljeno 2021-11-04. 
  10. 10,0 10,1 10,2 „Eager execution | TensorFlow Core”. Arhivirano iz originala na datum November 4, 2021. Pristupljeno 2021-11-04. 
  11. 11,0 11,1 „Module: tf.distribute | TensorFlow Core v2.6.1” (en). TensorFlow. Arhivirano iz originala na datum May 26, 2024. Pristupljeno 2021-11-04. 
  12. Distributed Computing and Artificial Intelligence, 11th International Conference. ISBN 978-3-319-07593-8. Arhivirano iz originala na datum May 26, 2024. Pristupljeno November 4, 2021. 
  13. 13,0 13,1 „Module: tf.losses | TensorFlow Core v2.6.1” (en). TensorFlow. Arhivirano iz originala na datum October 27, 2021. Pristupljeno 2021-11-04. 
  14. „Module: tf.metrics | TensorFlow Core v2.6.1” (en). TensorFlow. Arhivirano iz originala na datum November 4, 2021. Pristupljeno 2021-11-04. 
  15. 15,0 15,1 „Module: tf.nn | TensorFlow Core v2.7.0” (en). TensorFlow. Arhivirano iz originala na datum May 26, 2024. Pristupljeno 2021-11-06. 
  16. „Module: tf.optimizers | TensorFlow Core v2.7.0” (en). TensorFlow. Arhivirano iz originala na datum October 30, 2021. Pristupljeno 2021-11-06. 
  17. 2018 International Conference on Computational Techniques, Electronics and Mechanical Systems (CTEMS). ISBN 978-1-5386-7709-4. Arhivirano na datum May 26, 2024. Error: If you specify |archiveurl=, you must first specify |url=. Pristupljeno July 25, 2023. 
  18. „TensorFlow Core | Machine Learning for Beginners and Experts” (en). TensorFlow. Arhivirano iz originala na datum January 20, 2023. Pristupljeno 2021-11-04. 
  19. 19,0 19,1 19,2 „Introduction to TensorFlow” (en). TensorFlow. Arhivirano iz originala na datum January 20, 2023. Pristupljeno 2021-10-28.  Greška u referenci: Nevaljana oznaka <ref>; naziv ":1" je zadan više puta s različitim sadržajem
  20. „All symbols in TensorFlow 2 | TensorFlow Core v2.7.0” (en). TensorFlow. Arhivirano iz originala na datum November 6, 2021. Pristupljeno 2021-11-06. 
  21. „TensorFlow.js”. js.tensorflow.org. Arhivirano iz originala na datum May 26, 2024. Pristupljeno 2021-11-06. 
  22. „TensorFlow C++ API Reference | TensorFlow Core v2.7.0” (en). TensorFlow. Arhivirano iz originala na datum January 20, 2023. Pristupljeno 2021-11-06. 
  23. „org.tensorflow | Java” (en). TensorFlow. Arhivirano iz originala na datum November 6, 2021. Pristupljeno 2021-11-06. 
  24. „TensorFlowSharp: TensorFlow API for .NET languages”. GitHub. Arhivirano iz originala na datum July 24, 2017. Pristupljeno 2018-02-18. 
  25. „TensorFlow.NET: .NET Standard bindings for TensorFlow”. GitHub. Arhivirano iz originala na datum July 12, 2019. Pristupljeno 2018-12-11. 
  26. „haskell: Haskell bindings for TensorFlow”. Arhivirano iz originala na datum July 24, 2017. Pristupljeno 2018-02-18. 
  27. „A Julia wrapper for TensorFlow”. GitHub. Arhivirano iz originala na datum July 24, 2017. Pristupljeno 2019-08-14. 
  28. „A MATLAB wrapper for TensorFlow Core”. GitHub. Arhivirano iz originala na datum September 14, 2020. Pristupljeno 2020-02-13. 
  29. „Use TensorFlow from Pascal (FreePascal, Lazarus, etc.)”. GitHub. Arhivirano iz originala na datum January 20, 2023. Pristupljeno 2023-01-20. 
  30. „tensorflow: TensorFlow for R”. Arhivirano iz originala na datum January 4, 2017. Pristupljeno 2018-02-18. 
  31. „tensorflow_scala: TensorFlow API for the Scala Programming Language”. GitHub. Arhivirano iz originala na datum February 18, 2019. Pristupljeno 2018-02-18. 
  32. „rust: Rust language bindings for TensorFlow”. Arhivirano iz originala na datum July 24, 2017. Pristupljeno 2018-02-18. 
  33. „tensorflow-ocaml: OCaml bindings for TensorFlow”. GitHub. Arhivirano iz originala na datum June 11, 2018. Pristupljeno 2018-02-18. 
  34. „fazibear/tensorflow.cr” (en). GitHub. Arhivirano iz originala na datum June 27, 2018. Pristupljeno 2018-10-10. 
  35. „tensorflow package - github.com/tensorflow/tensorflow/tensorflow/go - pkg.go.dev”. pkg.go.dev. Arhivirano iz originala na datum November 6, 2021. Pristupljeno 2021-11-06. 
  36. „Swift for TensorFlow (In Archive Mode)” (en). TensorFlow. Arhivirano iz originala na datum November 6, 2021. Pristupljeno 2021-11-06. 
  37. „TensorFlow.js | Machine Learning for JavaScript Developers” (en). TensorFlow. Arhivirano iz originala na datum November 4, 2021. Pristupljeno 2021-10-28. 
  38. „TensorFlow Lite | ML for Mobile and Edge Devices” (en). TensorFlow. Arhivirano iz originala na datum November 4, 2021. Pristupljeno 2021-11-01. 
  39. 39,0 39,1 „TensorFlow Lite” (en). TensorFlow. Arhivirano iz originala na datum November 2, 2021. Pristupljeno 2021-11-01.  Greška u referenci: Nevaljana oznaka <ref>; naziv ":14" je zadan više puta s različitim sadržajem
  40. 40,0 40,1 „TensorFlow Extended (TFX) | ML Production Pipelines” (en). TensorFlow. Arhivirano iz originala na datum November 4, 2021. Pristupljeno 2021-11-02. 
  41. 41,0 41,1 41,2 „Customization basics: tensors and operations | TensorFlow Core” (en). TensorFlow. Arhivirano iz originala na datum November 6, 2021. Pristupljeno 2021-11-06. 
  42. 42,0 42,1 „Guide | TensorFlow Core” (en). TensorFlow. Arhivirano iz originala na datum July 17, 2019. Pristupljeno 2021-11-04. 
  43. 43,0 43,1 „Libraries & extensions” (en). TensorFlow. Arhivirano iz originala na datum November 4, 2021. Pristupljeno 2021-11-04. 
  44. „Colaboratory – Google” (en). research.google.com. Arhivirano iz originala na datum October 24, 2017. Pristupljeno 2018-11-10. 
  45. „Google Colaboratory” (en). colab.research.google.com. Arhivirano iz originala na datum February 3, 2021. Pristupljeno 2021-11-06. 
  46. 46,0 46,1 JAX: Autograd and XLA, Astrophysics Source Code Library, arhivirano iz originala na datum 2022-06-18, pristupljeno 2022-06-18 
  47. „Using JAX to accelerate our research” (en). www.deepmind.com. Arhivirano iz originala na datum 2022-06-18. Pristupljeno 2022-06-18. 
  48. „Why is Google's JAX so popular?” (en-US). Analytics India Magazine. Arhivirano iz originala na datum 2022-06-18. Pristupljeno 2022-06-18. 
  49. „Intelligent Scanning Using Deep Learning for MRI” (en). Arhivirano iz originala na datum November 4, 2021. Pristupljeno 2021-11-04. 
  50. 50,0 50,1 50,2 50,3 „Case Studies and Mentions” (en). TensorFlow. Arhivirano iz originala na datum October 26, 2021. Pristupljeno 2021-11-04.  Greška u referenci: Nevaljana oznaka <ref>; naziv ":6" je zadan više puta s različitim sadržajem
  51. 51,0 51,1 „Ranking Tweets with TensorFlow” (en). Arhivirano iz originala na datum November 4, 2021. Pristupljeno 2021-11-04. 
  52. „A Complete Guide to the Google RankBrain Algorithm” (en). Search Engine Journal. Arhivirano iz originala na datum November 6, 2021. Pristupljeno 2021-11-06. 
  53. „InSpace: A new video conferencing platform that uses TensorFlow.js for toxicity filters in chat” (en). Arhivirano iz originala na datum November 4, 2021. Pristupljeno 2021-11-04. 
  54. 54,0 54,1 „流利说基于 TensorFlow 的自适应系统实践”. Weixin Official Accounts Platform. Arhivirano iz originala na datum November 6, 2021. Pristupljeno 2021-11-04. 
  55. „How Modiface utilized TensorFlow.js in production for AR makeup try on in the browser” (en). Arhivirano iz originala na datum November 4, 2021. Pristupljeno 2021-11-04. 
  56. „Google Offers Up Its Entire Machine Learning Library as Open-Source Software”. Vice. Arhivirano iz originala na datum January 25, 2021. Pristupljeno November 11, 2015.