Težka vadnica

Tezka Vadnica



Je kdo že vedel za uporabo Pythona pri oblikovanju in razvoju robotov? Če je temu tako, je treba biti sposoben dokazati, da je Pythonova zamisel o globokem učenju edini način, da to dosežemo. Strojno učenje je raziskava optimizacijskih tehnik, ki črpa navdih iz modela človeškega uma. Podatkovne znanstvene discipline, vključno z robotiko, umetno inteligenco (AI), identifikacijo glasbe in videa ter identifikacijo slik, opažajo vse večjo uporabo globokega učenja. Pristopi globokega učenja so zgrajeni okoli sintetičnih nevronskih mrež. Preden se poglobite, morate najprej razumeti koncept Kerasa.

težko

Med najučinkovitejšimi in uporabniku prijaznejšimi vtičniki za gradnjo algoritmov za globoko učenje je dvignjeno umetno nevronsko ogrodje, ki temelji na Pythonu, imenovano Keras, ki bi bilo zgrajeno na vrhu dobro znanih ogrodij za globoko učenje, kot sta TensorFlow ali CNTK. Za hitrejše raziskovanje z uporabo globljih nevronskih mrež je zasnovan uporabniku prijazno, razširljivo in prilagodljivo. Ločeno obravnava tako Feedforward kot Retractable Networks, kot tudi v kombinaciji. Za obravnavanje majhnih operacij uporablja paket Backend, ker jih ne more upravljati. V tej lekciji bodo obravnavani uvajanje Keras, osnove globokega učenja, strukture Keras, plastenje Keras, paketi Keras in programiranje v realnem času.

Nastavite Keras v sistemu Linux

Korak 01: Posodobite sistem

Pred popolno predstavitvijo uporabe knjižnice »Keras« v Pythonu moramo v celoti posodobiti naš stroj Linux, da olajšamo nadaljnje namestitve. V ta namen moramo hitro odpreti aplikacijo “console” iz vgrajenih aplikacij sistema. Znotraj določenega področja poizvedbe smo dodali poizvedbo »posodobi« za Linux s pripomočkom »apt« in privilegijem »sudo« za hitro posodobitev sistema, ki ga imamo. Za nadaljevanje tega postopka je bilo potrebno naše uporabniško geslo, da se lahko naš sistem pravilno posodobi.









Korak 02: Namestite Python in Pip

Za uporabo poglobljenega učenja prek Kerasa in TensorFlow moramo imeti na našem računalniku konfigurirano najnovejšo različico Pythona. Zato začnemo nameščati posodobljeni paket Python skupaj z njegovim potrebnim pripomočkom 'pip' v naš sistem. Za to moramo znova uporabiti pripomoček »apt« sistema Ubuntu 20.04 Linux v poizvedbi »install« na lupini, ki ji sledijo imena paketov, ki jih je treba namestiti, tj. Python3 in Python3-pip. Po izvedbi te preproste poizvedbe na področju konzole bo sistem začel nameščati in konfigurirati oba paketa v našem sistemu.







Po drugi strani pa, če ima vaš sistem nameščeno staro različico pripomočka »pip« za Python, jo morate posodobiti, preden nadaljujete.



Po uspešni konfiguraciji Pythona in njegovega pripomočka »pip« je čas, da nadgradite Setuptools za Python, da se izognete težavam v bližnji prihodnosti. Zato smo preizkusili namestitveno poizvedbo s pripomočkom »pip3« in možnostjo –upgrade za namestitev nadgradnje Setuptools, tj. orodij za nastavitev. Zahteva trenutno geslo, ki ga imamo za naš sistem, in smo ga dodali.

Korak 03: Namestite TensorFlow

Za gradnjo strojnega učenja in nadzorovanih nevronskih modelov je TensorFlow najbolj znan simbolni matematični paket. Po pregledu namestitve smo izvajali isto namestitveno poizvedbo »pip3«, ki ji sledi ime paketa »Tensorflow«.

Drugi pripomočki, povezani s TensorFlow, morajo biti v celoti nameščeni v sistemu. Ti pripomočki bodo nameščeni skupaj s TensorFlow in lahko traja do 10 ali več minut.

Korak 04: Namestite bistvene pakete

Po uspešni konfiguraciji TensorFlow v sistemu Ubuntu 20.04 moramo konfigurirati tudi nekatere gradbene pakete skupaj z nekaterimi drugimi pripomočki, kot sta »git« in »cmake«. S poskusom istega orodja »apt« smo namestili veliko potrebnih paketov, kot je prikazano spodaj:

Ta korak pritegne našo največjo pozornost s potrditvijo te namestitve. Tapnite »y« in nadaljujte.

Korak 05: Ustvarite virtualno okolje

Po potrebnih namestitvah je čas za ustvarjanje virtualnega okolja. Zato moramo uporabiti pripomoček Python3 z možnostjo '-m', da ustvarimo virtualno okolje 'kerasenv' prek spremenljivke 'venv'. Poizvedba »ls« pokaže, da je okolje ustvarjeno.

Zdaj se moramo premakniti v virtualnem okolju mape Keras. Torej, uporabljali smo navodilo 'cd' skupaj z imenom mape virtualnega okolja. Po tem smo se premikali znotraj mape »bin« tega virtualnega okolja in navedli njegov pod. Za aktiviranje tega okolja Python smo preizkusili navodilo »source« v njegovem poizvedovalnem območju skupaj z datoteko »activate«. Virtualno okolje se aktivira z imenom 'kerasenv'.

Korak 06: Namestite knjižnice Python

Po uspešni nastavitvi virtualnega okolja Python morate pred namestitvijo Kerasa namestiti vse zahtevane knjižnice Python. Zato smo pandino knjižnico najprej namestili v isto virtualno okolje z uporabo paketa »pip« Pythona.

Sistem ga bo začel konfigurirati znotraj virtualnega okolja Python, kot je prikazano na sliki:

Po namestitvi knjižnice pand poskusite namestiti knjižnico NumPy na naslednji način:

Na zelo podoben način namestite knjižnico scipy za Python v isto okolje.

Zdaj namestite knjižnico matplotlib Pythona v okolje.

Python uporablja algoritme združevanja v gruče in regresijo v strojnem učenju za izvajanje modelov nevronske mreže. Za to ima učno knjižnico sci-kit, ki jo nameščamo s pripomočkom »pip« skupaj z možnostjo »-u« za konfiguracijo zahtevanih paketov.

Obdelava namestitve knjižnice scikit je prikazana spodaj:

Za vizualizacijo pri globokem učenju potrebujemo nameščeno knjižnico seaborn Python. Zato smo ga namestili v isto okolje s poizvedbo »namesti«.

Korak 07: Namestite knjižnico Keras

Po namestitvi vseh potrebnih predpogojnih knjižnic Pythona lahko končno namestimo Keras v virtualno okolje Python. Pripomoček »pip« bo v ta namen uporabljen v naši poizvedbi »namestitev« z imenom modula, tj. »Keras«. Če sistem pokaže, da je njegova zahteva že izpolnjena, to pomeni, da je že nameščen in konfiguriran.

Če še ni nameščen, se bo ta poizvedba začela prenašati in konfigurirati v virtualnem okolju brez zamude ene sekunde in obdelava bo prikazana, kot je prikazano spodaj:

Po popolni konfiguraciji in namestitvi knjižnice »Keras« v virtualnem okolju je čas, da prikažete vse informacije v zvezi z njo na lupini prek poizvedbe »pip show«. Izvedba te poizvedbe »prikaži« je predstavljala različico Kerasa, nameščenega v našem virtualnem okolju Python, njegovo ime, povzetek, spletno domačo stran, avtorja, e-pošto avtorja, licenco, lokacijo, ki jo zavzame v našem sistemu, in številne več, kot je predstavljeno spodaj:

Po najboljših namestitvah knjižnic Keras in TensorFlow Pythona moramo zapustiti virtualno okolje. Za to poskusite s poizvedbo »deaktiviraj« na lupini in zaprite.

Korak 08: Namestite Anaconda Cloud

Python ima oblak z imenom »Anaconda«, ki je potreben za izdelavo primerov nevronske mreže v Pythonu. Zato smo njegovo izvršilno datoteko prenesli v naš sistem.

Ta datoteka se nahaja v trenutni domači mapi računalnika Linux v skladu s poizvedbo »ls«. Najprej se morate prepričati, da gre za kontrolno vsoto, tj. ali je v celoti pravilna ali ne prek poizvedbe sha256sum.

Po tem moramo namestiti preneseno datoteko Bash anaconde v naš sistem z uporabo navodil »Bash« in imena datoteke na isti konzoli. Zahteva, da pred namestitvijo pregledamo licenčno pogodbo. Torej smo za nadaljevanje tapnili »Enter«.

Po pregledu licenčne pogodbe nas prosi, da se dotaknemo »da«, če se strinjamo s pogoji. Za nadaljevanje namestitve na istem mestu morate pritisniti Enter ali napisati pot do imenika, kamor ga želite namestiti. V nasprotnem primeru uporabite »Ctrl-c« za preklic namestitve.

Prikazal bo dolg seznam paketov, ki bodo nameščeni v tem procesu. Po izvedbi transakcije bo začel nameščati pakete.

Čez nekaj časa je bila anakonda uspešno nameščena z dodatnimi paketi.

Datoteko »activate« morate zagnati iz mape Anaconda prek poizvedbe »source« kot root.

Poskusite zagnati navigator Anaconda z naslednjo poizvedbo.

Če želite ustvariti novo okolje conda in delati na njem, poskusite z navodilom »conda create« z možnostjo imena, ki ji sledi ime novega okolja, tj. PyCPU.

Ta proces zahteva našo potrditev o ustvarjanju novega okolja. Tapnite »y«.

Če želite aktivirati in zagnati novo okolje conda, uporabite poizvedbo »conda activate« z imenom vašega novega okolja, tj. okolje PyCPU je zdaj aktivirano.

Korak 09: Namestite Spyder IDE

Spyder IDE mora biti nameščen znotraj tega okolja za izvajanje programov Python. Za to smo poskusili namestitveno poizvedbo conda v lupini okolja PyCPU s ključno besedo 'spyder'.

Tapnite »y« za nadaljevanje namestitve Spyderja.

10. korak: Namestite Pandas in Keras Library

Po namestitvi Spyderja namestite pandino knjižnico Python v okolju anaconda z uporabo poizvedbe za namestitev conda z možnostjo –c.

Ponovno pritisnite gumb 'y', da nadaljujete.

Po uspešni konfiguraciji pand namestite knjižnico Keras z isto poizvedbo.

Nadaljujte po kliku na gumb 'y'.

Spyder IDE lahko zaženete znotraj konzole trenutnega okolja anaconda na naslednji način:

Spyder IDE se je pripravljal na zagon.

Skrita mapa ».keras« se nahaja v domačem imeniku. Razkrijte ga in odprite njegovo datoteko »keras.json«, da vanjo dodate naslednje konfiguracije.

Nastavite Keras in TensorFlow v sistemu Windows

Če želite nastaviti Keras in TensorFlow v okolju Windows, se morate prepričati, da je jezik Python skupaj s knjižnico »pip« in Anaconda Navigator že nastavljen na njem. Ko ga nastavite, bi ga morali odpreti iz območja iskanja in se premikati znotraj zavihka »okolja«. V tem zavihku boste našli ime okolja, v katerem trenutno delate, tj. osnova. V spodnjem območju boste našli naslednji zavihek. Dotaknite se možnosti »ustvari«.

Tukaj morate ustvariti novo okolje z imenom »TensorFlow«, kar pomeni, da ste trenutno znotraj osnovnega okolja. Izberite najnovejšo različico Pythona, ki jo želite uporabiti, in tapnite gumb »Ustvari«, da nadaljujete.

Videli boste, da se je okolje začelo nalagati.

Čez nekaj časa se okolje TensorFlow v celoti namesti.

Na skrajnem levem delu si lahko ogledate vse nameščene in razpoložljive knjižnice in module za Python, kot je predstavljeno spodaj:

Zdaj moramo namestiti zaledno knjižnico TensorFlow za Python s tem področjem. V iskalno vrstico vpišite »TensorFlow« in označite isti paket primerov s prikazanega seznama, da ga namestite. Dotaknite se gumba »Uporabi«, da nadaljujete z namestitvijo TensorFlow skupaj z njegovimi podmoduli, kot je »Keras«.

Začel je delovati in konfigurirati TensorFlow v našem okolju Anaconda.

Med namestitvijo bo prikazal seznam podpaketov, ki bodo nameščeni v okolju Anaconda. Pritisnite gumb »Uporabi« in počakajte nekaj časa, da se konča.

Čez nekaj časa boste našli vse nameščene pakete v istem območju modulov. Vidite lahko, da je bila knjižnica Keras nameščena z drugimi paketi in nam je zdaj ni treba namestiti.

V iskalni vrstici Windows poiščite ključno besedo »Jupyter«. Aplikacija z imenom »Jupyter Notebook (TensorFlow)« bi bila prikazana skupaj z drugimi. Dotaknite se ga, da zaženete jupyter Notebook z omogočenim zalednim sistemom TensorFlow. Ustvarite novo datoteko Python in začnite delati.

Globoko učenje preko Hard

Globoko učenje vključuje analizo vnosa po plasteh, pri čemer vsaka plast postopoma izvleče podrobnosti na napredni ravni iz vnosa. Keras zagotavlja popoln okvir za oblikovanje kakršne koli nevronske mreže. Tako kreativen kot neverjetno preprost za razumevanje, Keras. Omogoča modele nevronskih mrež od najbolj naivnih do največjih in vrhunsko kompleksnih.

Umetna nevronska mreža (ANN)

Zdi se, da je metodologija »umetne nevronske mreže« (ANN) najbolj razširjena in temeljna metoda globokega učenja. Zgledujejo se po človeškem umu, naravni najbolj zapleteni komponenti našega telesa, ki jim služi kot model. Posameznikove možgane sestavlja več kot 90 milijard mikroskopskih celic, imenovanih 'nevroni'. Aksoni in dendriti so vrste živčnih vlaken, ki povezujejo nevrone. Primarna funkcija aksona je pošiljanje podatkov iz enega povezanega nevrona v drugega. Za več informacij poiščite v iskalniku Google.

Arhitektura Keras

Arhitektura Keras API je bila razvrščena v tri glavne dele, navedene spodaj. Vzemimo krinko pri vsakem posebej.

  • Model
  • Plast
  • Jedrni moduli

Trden model

Kerasov model je sestavljen iz natanko dveh vrst, to sta sekvenčni in funkcionalni API.

Zaporedni model

V bistvu je sekvenčni model kronološka kompilacija Kerasovih plasti. Preprost, poenostavljen zaporedni model lahko opiše skoraj vse nevronske mreže, ki so trenutno v uporabi. Prilagojeni model je mogoče izdelati z uporabo razreda Model, ki ga razkriva zaporedni model. Pristop podrazredov lahko uporabimo za izdelavo lastnega prefinjenega modela. Predstavitev zaporednega modela je predstavljena spodaj.

Dodajte plasti

Skript je bil zagnan z uvozom zaporednega načina prek keras.models, druga vrstica pa je ustvarjala zaporedni model. Nato z uvozom gostega sloja ustvarite vhodni sloj in modelu dodate vhodni sloj. Skrita gosta plast je bila ustvarjena in dodana modelu, enako je bilo izvedeno za izhodno gosto plast.

Dostop do modela

Dobite lahko informacije o slojih vašega modela, vhodnih podatkih, ki jih uporablja, in njegovih izhodnih podatkih. Funkcija model.layers vam omogoča dostop do vseh plasti. Model.inputs bi prikazoval vhodne tenzorje, model.output pa izhodne tenzorje.

Serializirajte model

Model, uporabljen v skriptu, je preprosto vrniti kot objekt ali JSON. Na primer, funkcija get_config() vrne model kot entiteto/predmet. Funkcija from_config() ustvari nov model z uporabo predmeta kot parametrske vrednosti.

Svoj model lahko spremenite tudi v JSON s funkcijo to_json().

Povzetek modela

Če želite pridobiti celoten povzetek v zvezi s sloji, uporabljenimi v modelu, skupaj z nekaterimi dodatnimi informacijami, pokličite funkcijo summary().

Uri in predvidi model

Za usposabljanje in predvidevanje bi morali uporabiti funkcijo prevajanja, funkcijo prileganja, ovrednotenje funkcije in funkcijo napovedi v zvezi s tem.

Trde plasti

Vsaka vhodna, skrita in donosna plast v predlaganem modelu nevronskih mrež ustreza drugi plasti Keras v realnem modelu. Vsako sofisticirano nevronsko mrežo je mogoče hitro razviti z uporabo številnih vnaprej zgrajenih plasti knjižnice Keras. Imamo različne plasti Keras, tj. jedrne plasti, združevalne plasti, ponavljajoče se plasti in konvolucijske plasti. Lahko jih preučite z iskanjem po spletu. Prvi dve vrstici sta uvažali sloj zaporednega načina, gosto, aktiviranje in izpad.



Preizkušali smo API Sequential() za ustvarjanje zaporednega modela izpada. Z opuščanjem aktivacijskega modela »relu« smo ustvarili gosto plast prek API-ja »Dense«. Da bi poskrbeli za prekomerno prileganje gostega sloja, smo uporabljali Dropout() API, tj. izpadanje slojev prek funkcije dropout(). Po tem smo tukaj uporabljali bolj gosto plast z aktivacijskim modelom 'relu'. Za obvladovanje gostih slojev zaradi pretiranega prileganja moramo uporabiti Dropout sloje. Na koncu smo z aktivacijskim modelom tipa 'softmax' odstranili naše končne goste plasti.







Ste že kdaj izvajali plastenje med kuhanjem? Če je tako, potem vam tega koncepta ne bi bilo težko razumeti. Rezultat ene ravni bo služil kot vhodni podatek za naslednjo plast. Tu so osnovne stvari, ki so potrebne za izdelavo popolnoma nove plasti:



  • Oblika vhodnih podatkov
  • Skupno število nevronov/enot v plasti
  • Inicializatorji
  • Regulatorji
  • Omejitve
  • Aktivacije

Oblika vhodnih podatkov

V jeziku Python je bila vsaka vrsta vnosa pretvorjena v niz celih števil in nato dodana modelu algoritma. V Pythonu moramo določiti vhodno obliko, da dobimo izhod v skladu z našimi zahtevami. V naslednjih primerih smo podali vhodno obliko (3,3), tj. 3 vrstice in 3 stolpce. Izhod je prikazoval matriko.







Inicializatorji

Modul inicializatorjev Keras Layers nam ponuja številne funkcije za določanje specifične teže za vhodne podatke. Na primer, funkcija zeros() podaja 0 za vse, ones() bi podala za vse, funkcija constant() pa poda določeno konstantno vrednost, ki jo doda uporabnik za vse in več. Za boljše razumevanje smo uporabili funkcijo identity() za ustvarjanje matrike identitete. Preostale funkcije lahko iščete tudi z iskalnikom.



Omejitve

Na voljo so različne omejitvene funkcije za uporabo omejitev na parameter »teža« plasti, tj. nenegativne, norma enote, največja norma, najmanjmaxnorma in še veliko več. Znotraj naslednje ilustracije smo uporabili normo omejitve, ki je manjša ali enaka teži. Parameter »max_value« je zgornja meja omejitve, ki jo je treba uporabiti, os pa je dimenzija, na kateri bi bila uporabljena omejitev, tj. dimenzija 1.

Regulatorji

Skozi celotno optimizacijo nalaga različne stroške lastnosti plasti. Pripravil je tudi nekaj funkcij za to, tj. regulator L1, regulator L2 in regulator 'LI in L2'. Tukaj je najenostavnejša ilustracija funkcije regulatorja L1:

Aktivacije

Edinstvena funkcija, imenovana aktivacijska funkcija, se uporablja za ugotavljanje, ali je določen nevron aktiven ali ne. Aktivacijska funkcija preoblikuje vhodne podatke na kompleksen način, kar pomaga nevronom pri učinkovitejšem študiju. Tukaj je več načinov aktivacije, predstavljenih v spodnjih primerih:

Trdi moduli

Kot vemo, programski moduli običajno vsebujejo funkcije, razrede in spremenljivke, ki se uporabljajo za različne in posebne namene. Prav tako Pythonova knjižnica Keras vsebuje veliko modulov. Vsa potrebna znanja o modulih Keras lahko dobite na spletu.

Zaledje

Eden njegovih najbolj znanih in uporabljenih modulov je modul »Backend«, ki je bil zasnovan za uporabo zalednih knjižnic Pythona, kot sta TensorFlow in Theano. Z uporabo zalednega modula lahko uporabimo čim več zalednih funkcij iz knjižnic TensorFlow in Theano. Za uporabo modula zaledne knjižnice moramo določiti zaledno knjižnico, ki bo uporabljena v konfiguracijski datoteki »keras.json«, ki smo jo ustvarili v skriti mapi .keras. Privzeto je bilo zaledje določeno kot »TensorFlow«, vendar ga lahko spremenite tudi v katerega drugega, npr. Theano ali CNTK.

V našem primeru bomo knjižnico TensorFlow uporabljali kot zaledje. Če želite naložiti konfiguracije ozadja iz datoteke keras.json korenske mape »keras«, uporabite:

  • iz kerasa uvozi zaledje kot k

Po uspešnem uvozu zaledja iz datoteke keras.json je čas, da pridobite informacije o zaledju z uporabo spremenljivke »k« s spremenljivko, ki jo želite pridobiti. Najprej smo pridobili ime zaledja, ki smo ga uporabljali in smo ga že uvozili s funkcijo »backend()«. Kot svojo zaledno vrednost vrne »Tensorflow«. Da bi dobili plavajočo vrednost ozadja, smo klicali funkcijo floatx() prek Kerasovega objekta spremenljivke »k«. Kaže, da smo uporabljali vrednost float32.

Če želite pridobiti obliko slikovnih podatkov, uporabite funkcijo image_Data_format() s spremenljivko »k«. Ko ga uporabljamo, kaže, da je naše zaledje uporabljalo obliko slikovnih podatkov »channels_last«. Če želite pridobiti eksponentno moč za zaledje, pokličite funkcijo epsilon() s spremenljivko »k«. Vrne, da bo zaledje uporabljalo eksponentno moč »07«. To je vse o pridobivanju informacij o zaledju.

Funkcija Get_uid().

Čas je, da si ogledamo nekaj zalednih funkcij TensorFlow, da razumemo njegovo funkcionalnost. Ena najpogosteje uporabljenih zalednih funkcij »funkcija get_uid(), ki se uporablja za prepoznavanje privzetega grafa, ki smo ga uporabljali. Če bi ga uporabili s parametrom prefix=’’, bi vrnili »1«, tj. glede na uporabo. Spet bi njegova uporaba vrnila '2', kot smo ga znova klicali, vrednost grafa pa se je povečala. Po uporabi funkcije »reset_uids« bi bila vrednost ID-ja uporabnika grafa ponastavljena na 0. Zato bi jo s ponovno uporabo funkcije get_uid() povečali za 1.

Funkcija placeholder().

Tenzor je uporabljal funkcijo placeholder() za shranjevanje različnih dimenzijskih oblik v njem. Na primer, znotraj naslednje ilustracije smo jo uporabljali za shranjevanje 3-D slike v tenzorju prek Kerasove spremenljivke »k« in njeno shranjevanje v drugo spremenljivko »d«. Izhod spremenljivke 'd' prikazuje lastnosti oblike, ki se uporablja v označbi mesta.

Funkcija »int_shape()« se uporablja za prikaz oblike vrednosti, shranjene v označbi mesta »d«.

Funkcija Dot().

Ste že kdaj pomnožili dva vektorja? Če je tako, vam ne bo težko pomnožiti dveh tenzorjev. Za to je zaledna knjižnica pripravila funkcijo 'pika'. Prvič, da zadržimo dve različni obliki, smo uporabili vrednosti oblike v funkciji placeholder() v prvih dveh vrsticah, da ustvarimo dva imetnika 'x' in 'y'. Funkcija dot() je uporabila imetnika 'x' in 'y', da pomnoži oba tenzorja in shrani rezultat v drugo spremenljivko 'z'. Ko je za tiskanje uporabil tenzor »z«, je na zaslonu prikazal pomnoženo rezultanto oblike tenzorja (1, 5).

Funkcija Ones().

Funkcija ones() zalednega modula je znana po inicializaciji vseh vrednosti določene oblike na 1. Funkcijo ones() smo na primer uporabljali na obliki tenzorja (3,3) in shranili rezultat v spremenljivka 'v'. Funkcija eval() je tukaj opuščena za ovrednotenje vrednosti spremenljivke »v« in prikaz v okolju Python. V zameno je pretvoril obliko (3,3) v matriko matrike vseh s podatkovnim tipom float32.

Funkcija Batch_dot().

Paket tenzorjev bi določil skupno število vzorcev za razvrščanje pred posodobitvijo modela. Funkcija batch_dot() zaledja TensorFlow se večinoma uporablja za ugotavljanje rezultata množenja dveh različnih paketnih podatkov. Zato smo ustvarili dve tenzorski spremenljivki v1 in v2 ter uporabili funkcijo Input(), da ju shranimo v v1 in v2 kot vnos. Po tem smo preizkusili funkcijo batch_dot() na obeh tenzorskih spremenljivkah, v1 in v2, in nastala vrednost bi bila shranjena v drugo spremenljivko »v3«. Pri tiskanju spremenljivke v3 smo v zameno našli rezultanto oblike (2,2).

Funkcija spremenljivke

Če ste kdaj delali na katerem koli drugem jeziku, ste morda inicializirali veliko spremenljivk s ključno besedo 'var' ali brez nje. Velikokrat ste morda inicializirali spremenljivke z njihovimi vrstami podatkov, kot so celo število, niz ali znak. Znotraj knjižnice Python Keras lahko ustvarimo poljubno spremenljivko s funkcijo variable() na nekaterih tenzorskih podatkih v obliki vzorcev.

Znotraj naslednje slike smo ustvarili spremenljivko »d« tako, da smo dodali vzorčna dva seznama podatkov v funkcijo variable() z objektom Keras »k«. Po dodajanju te spremenljivke smo klicali funkcijo transpose() za to spremenljivko 'd', da bi ugotovili prenos vzorčnih podatkov znotraj nje prek predmeta Keras 'k'. Dobljeni prenos bi bil shranjen v spremenljivko 'val'. Stavek tiskanja jezika Python je bil tukaj uporabljen za tiskanje vrednosti rezultantne spremenljivke »val«. Stavek za tiskanje je prikazoval izbiro funkcije, ki smo jo uporabili za spremenljivko 'd', in skupno število elementov na vsakem seznamu.

Po tem smo preizkusili funkcijo »eval« na spremenljivki »val«, da bi dobili transponiranje vzorcev, dodanih v spremenljivko »d«, in funkcija tiskanja je to prikazala. V izhodu lahko vidite prenos dveh seznamov.

Prejšnja ilustracija kode je bila dosežena z uporabo preprostih funkcij Python brez uvoza katere koli posebne knjižnice Python. »Prenos« dveh nizov podatkov je mogoče najti z uporabo nizov NumPy. Za to moramo na začetku uvoziti knjižnico NumPy kot »n«. Osnovni format je enak, vendar moramo nabor podatkov o obliki inicializirati s ključno besedo »array« namesto s ključno besedo »variable«. Vzorčno polje NumPy je treba hraniti nazaj na spremenljivko 'd'. Isti predmet NumPy 'n' se uporablja za klic funkcije transpose() na spremenljivki 'd' in shranjevanje njenega rezultata v spremenljivko 'val'.

Stavek za tiskanje je klical spremenljivko »val« v njem, da prikaže njen transponirani tenzor. Vidite lahko, da za prikaz nastale transponirane vrednosti spremenljivke »val« tukaj ne potrebujemo funkcije »eval«. Zdaj smo uporabili funkcijo spremenljivke z argumentom 'd' in rezultat shranili v spremenljivko 'z'. Potem ko je preizkusil stavek za tiskanje z dodajanjem vrednosti argumenta »z«, je prikazal izhod v isti prejšnji obliki, kot smo jo poskusili v zgornjem primeru spremenljivke.

Funkcija Is_sparse().

Beseda 'redek' v tenzorju se uporablja za redek tenzor, ki vsebuje večinoma vnose z ničlami. V tem primeru bomo uporabili funkcijo is_sparse() zalednega modula, da preverimo, ali ima tenzor večino ničel ali ne.

Najprej smo klicali funkcijo placeholder(), da zadrži obliko tenzorja (3,3) skupaj z argumentom Sparse, nastavljenim na true. Ta nadomestna vrednost bi bila ohranjena pri spremenljivem 'x' in prikazana. Izhod je prikazoval informacije o spremenljivki nadomestnega znaka »x«.

Zanj so na primer uporabljeni njegov tip podatkov, oblika in funkcija. Po tem smo še enkrat preizkusili stavek za tiskanje in v njem poklicali funkcijo is_Sparse(). Ta funkcija je vzela spremenljivko 'x' kot argument za prikaz, ali je tenzor 'x' redek ali ne. Izhod prikaže »true«.

Funkcija to_dense().

Gost tenzor naj bi bil tisti, ki je uporabljal kronološki blok spomina za shranjevanje informacij na sosednji način in predstavljal tudi vrednosti informacij. Funkcija »to_dense()« zalednega modula nam omogoča pretvorbo redkega tenzorja v gosti tenzor. Zato uporabljamo isto funkcijo označbe mesta za dodajanje tenzorja spremenljivki »x« in ta tenzor je nastavljen na »redko«.

Funkcija »to_dense()« se uporabi za spremenljivko gostega tenzorja »x«, tj., da jo pretvori v gosti tenzor in shrani v drugo spremenljivko »res«. Zdaj je 'res' sam gost tenzor. Stavek za tiskanje je bil odstranjen za izpis spremenljivke »res«. Uporaba stavkov za tiskanje za spremenljivko »res« je prikazala informacije o pretvorjeni spremenljivki »res«, tj. uspešno pretvorbo redkega v gosto in še veliko več.

Nato se pokliče druga funkcija tiskanja z uporabo funkcije is_sparse() v njej, da se preveri, ali je spremenljivka »res« redka ali ne. Izhod je pokazal, da spremenljivka 'res' ni redka, tj. ker smo jo že pretvorili v 'gost' tenzor.

Funkcija Random_uniform_variable().

Funkcija random_uniform_variable() v zalednem modulu Keras je zasnovana posebej za inicializacijo tenzorja prek enotne porazdelitve. Potrebuje skupno tri argumente. Prvi argument »oblika« se uporablja za definiranje vrstic in stolpcev oblike v obliki tuple. Če ste se ukvarjali z matematiko, ste se morda naučili koncepta srednje vrednosti in standardnega odklona.

V metodi random_uniform_variable() sta naslednja dva argumenta povprečje in tipično odstopanje od enakomerne porazdelitve. V tej ilustraciji smo inicializirali dva tenzorja 'x' in 'y' z uporabo standardne enotne porazdelitve prek funkcije random_uniform_variable(). Oba tenzorja vsebujeta različne oblike oblik, tj. vrstice in stolpce z enakim povprečjem in standardnim odklonom, tj. nizko=0 in visoko=1.

Po tem opustimo funkcijo 'pika' in za množenje vzamemo tenzorja 'x' in 'y'. Rezultat tega množenja bi se shranil v spremenljivko 'z'. Na koncu je treba uporabiti int_shape() za prikaz oblike nastalega tenzorja 'z'. Izhod prikazuje tenzor (2,2).

Utils

Če želite uporabiti nekaj zelo uporabnih funkcij iz koncepta globokega učenja Pythona, morate v svojih skriptih uporabiti modul utils knjižnice Keras. Če želite na primer prikazati svoje podatke v formatu HDF5Matrix, morate uvoziti razred HDF5Matrix in uporabiti njegovo funkcijo HDF5Matrix v skriptu.

Funkcija To_categorical().

Ta funkcija vam omogoča spreminjanje vektorja razreda v matriko, tj. binarno matriko razreda. Recimo, da smo uvozili funkcijo to_categorical() iz modula utils in inicializirali vektor »A«. Vektor »A« je bil posredovan funkciji to_categorical(). Prikazana je binarna matrika za ta razredni vektor 'A'.

funkcija print_summary().

Za tiskanje povzetka modela, ki smo ga opustili v našem okolju, je bila uporabljena funkcija print_summary.

Funkcija plot_model().

Funkcija plot_model() označuje model v obliki pike in vam omogoča, da ga shranite v dokument.

Zaključek

Če povzamemo, lahko rečemo, da je jezik Python nujen jezik za današnjo dobo, saj vse postaja hitro in tehnologija se razvija tako noro hitro. V tej učni smernici smo se ukvarjali z uporabo Pythonove knjižnice Keras pri poglobljenem učenju in umetnih nevronskih mrežah. Za to smo šli tudi skozi pomen in uporabo njegove zaledne knjižnice »TensorFlow«, da bi dobili jasno razumevanje. Poleg tega smo razpravljali in razložili vsako konfiguracijo, potrebno za nastavitev okolja Keras in Anaconda v Pythonu znotraj operacijskega sistema Ubuntu 20.04 Linux. Po tem smo enega za drugim temeljito razpravljali o modelih, slojih in modulih Keras skupaj z njihovimi najpogosteje uporabljenimi funkcijami. Za predstavitev modela Function API preverite uradno dokumentacijo.