Julia Vs Python – Som Er Raskere For Dyp Læring?

noen gang prøvd et annet programmeringsspråk FOR AI

Ansvarlig Redaktør / Research Nest
Ansvarlig Redaktør / Forskningsrådet

Følg

17. Jul · 2020 * 5 min lese

Bilde Av Safar Safarov På Unsplash

Er DU EN AI-entusiast?

Ja?

så svar på dette spørsmålet: Hvilket programmeringsspråk bruker du til å utvikle ting for AI?

svaret ditt Er Python. Se! Vi visste det.

Ok, vi er ikke tryllekunstnere, men det er et velkjent faktum. Python er et av de mest populære språkene akkurat nå, ikke bare I Maskinlæring, men også for normale utviklingsformål. Fra oktober 2019 bruker over 8,2 millioner Utviklere Python. Som er 1 million mer Enn Java og over 6 millioner mer Enn Swift.

Python rangerer først når det gjelder utvikling i domenet til kunstig intelligens.

for å bevise det enkelt, vil de fleste entusiaster ikke engang vite noe annet språk enn Python (og R for det meste), som kan brukes Til Maskinlæring. Og det er bare fordi det virker skremmende å kode ML algoritmer I C eller Java.

Python brukes mye på grunn av sin enkelhet og fellesskap. Men vi vet alle en stor ulempe Med Python.

Jepp. Hastigheten på utførelsen.

Python er 400 ganger tregere Enn C++. Men vi kommer rundt alt dette I Maskinlæring ved å bruke bibliotekene skrevet på mer effektive språk Som C.

men likevel er beregningsbelastningen tyngre. Og Også, Python er et minne hog.

Så hva kan vi gjøre? Vi kan ikke få det beste fra begge verdener!

vel, Før du hopper til konklusjoner, la oss vise deg hva folkene PÅ MIT har å tilby.

Introduserer Julia.

Nei, det er ikke en annen humanoid eller chatbot. Det er et programmeringsspråk.

Akkurat Som Python, Kan Julia brukes til generell programmering, men mange av funksjonene er egnet for vitenskapelige beregninger og numerisk analyse. Det oppsto først i 2012. Med sin stabile utgivelse i 2020.

men Hva Har Julia å tilby? Vel, Først Av Alt, Julia er rask. Akkurat som Java, Bruker Julia en just-in-time kompilator. For Det andre Er Julia også lettere å lære enn andre beregningseffektive språk. Og før du spør, Ja, Julia er så enkelt når Det gjelder syntaks som Python.

men er Det bedre Enn Python? Hvis ja, så på hvilke vilkår?

la oss gjennomføre et eksperiment og se.

Vi ville trene en enkel CNN på Både Python og Julia. Vi ville bruke de mest stabile og effektive implementeringene AV CNN på begge språk, med samme arkitektur.

For Python bruker Vi Tensorflow. Og For Julia bruker Vi Flux.jl, som er en ren Julia stabel. Her er noen referanser for deg, å gjennomføre eksperimentet selv.

vi skal sjekke tiden for hver epoke, samt implementeringstidene for forbehandlingsoppgavene.

Vi skal implementere Både Cnn-ene på MNIST-datasettet og se resultatene. Du kan prøve å bruke et annet datasett og se om resultatene våre er relatert til dem.

for å beregne utførelsestidene bruker vi tidsmodulen I Python, men det er bare nødvendig for forhåndsbehandlingstidsberegningen, da modellopplæringstiden lett kan ses i utgangen av modellen.fit () funksjonen selv.

import time
start_time = time.time()#Code
print("The time elapsed: ",time.time()-start_time)

For Julia bruker vi en veldig nyttig makro: @time. Vi bruker den på den generelle forbehandlingskoden samt på togfunksjonen vi bruker per hver epoke.

Noe som dette:

@time begin#Preprocessing codeend

Mens du bruker på et enkelt trinn, kan vi bare bruke mikroen direkte som prefiks, som:

@time Flux.train!(loss, params(model), train_set, opt)

ikke bekymre deg hvis Du ikke kan forstå Julia syntaks ennå. Bare forstå at vi prøver å måle utførelsestidene.

Noen Resultater

spesifikasjonene til systemet som ble brukt til eksperimentet:

Intel Core-i78550U-16 GB RAM

  • Den totale forbehandlingstiden For Python var 2,6 sekunder.
  • Den totale behandlingstiden For Julia var 4.2 sekunder, inkludert tiden for pre-kompilering av modellen.
  • Tiden per iterasjon i Python var 20 sekunder per epoke.
  • Tiden per iterasjon i Julia var 16 sekunder per epoke.

Nå kan du tenke, det er ikke så mye annerledes og bedre når det gjelder effektivitet.

vel, det er en avgjørende forskjell mellom utførelseskriteriene. Under Utførelsen Av Python-kode var DET totale CPU-forbruket 87 prosent. Men under Utførelsen Av Julia var DET totale CPU-forbruket 18 prosent.

Så, hvis vi bruker parallelle beregninger I Julia og dra full nytte AV CPU, kan vi få tiden per iterasjon så lavt som 3,6 sekunder.

ja, Vi kan se At Julia er ganske rask i forhold Til Python. Men det betyr ikke nødvendigvis at Det kommer til å ta Over Python når som helst snart.

Grunnen Til At Python er så lett å tilpasse, skyldes det store samfunnet. Julia har ikke så stor av et samfunn som Python har. En ting Er At Julia ikke som standard bruker den fulle beregningskraften til maskinen den kjører på. Du må bruke visse kommandoer og en bestemt måte å utføre for å få det til å gjøre det.

Python er akkurat nå på denne posisjonen på grunn av sin enkelhet og bibliotekene og modulene det fungerer på. Og Python har vært med oss så lenge. Julia kom nettopp. Vi kan ikke se sitt fulle potensial ennå. Men det viser løfte om å bli et av de mest brukte språkene i databeregninger.

Julia er raskere. Julia er like enkel som Python. Men det eneste spørsmålet er, hvor fort utvikler samfunnet vedta dette og gjøre det enda bedre. Er det virkelig verdt å gjøre det skiftet? Jeg antar at vi trenger mer data og casestudier for å svare på det.

vi håper denne artikkelen skaper en nysgjerrighet for å se på andre språk utover Python i AI.

Referanser og videre lesning:

  • Lauwens, B., & Downey, A. (n. d.). Hentet fra https://benlauwens.github.io/ThinkJulia.jl/latest/book.html
  • Flux: Julia Machine Learning Library. (n.d.). Hentet fra https://fluxml.ai/Flux.jl/stable/
  • Convolutional Neural Network (CNN): TensorFlow Kjerne. (n.d.). Hentet fra https://www.tensorflow.org/tutorials/images/cnn
  • Parallell Databehandling. (n.d.). Hentet fra https://docs.julialang.org/en/v1/manual/parallel-computing/

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.