Lühijuhend oma närvivõrkude skemaatilise esituse loomiseks Jupyteri või Google Colabi abil
Sageli töötades tehisnärvivõrkudega või muude variatsioonidega, nagu konvolutsiooninärvivõrgud või korduvad närvivõrgud, tahame oma koostatud mudelit visualiseerida ja luua skemaatilise esituse. See võib lahendada kaks eesmärki:
- Mitme mudeli määratlemine ja treenimine võimaldab meil visualiseerida oma mudeli sügavust ning võrrelda erinevaid kihte ja nende järjestikust paigutust.
- Võimaldab paremini mõista mudeli struktuuri, igas kihis kasutatavaid aktiveerimisfunktsioone, iga kihi kuju (neuronite arvu) ja treenimist vajavaid parameetreid
Pythonis on hõlpsasti saadaval mõned paketid, mis võivad luua meie närvivõrgu mudelite visuaalse esituse. Kolme esimest paketti saab kasutada isegi enne mudeli väljaõpet (mudel tuleb ainult defineerida ja kompileerida); Tensor Boards nõuab aga, et kasutaja koolitaks mudelit täpsete andmete põhjal, enne kui arhitektuuri saab visualiseerida.
pip install visualkeraspip install ann_visualizerpip install graphviz
Me ei pea "Tensor Board" ja "Keras Model Plot" eraldi installima. See tuleb koos Tensorflow & Kerase esmase installimisega.
Võime kasutada ainult mõnda allpool loetletud teeki. Enamik teeke saab TensorFlow mudeli diagrammiks teisendada ilma seda andmete põhjal selgesõnaliselt õpetamata. Võite seda pidada üheks tõeallikaks. Mõned teegid, nagu Pandas, Skimage ja OpenCV, on kasulikud struktureeritud andmete või piltide lugemisel.
# Importige vajalikud raamatukogudimpordi pandad kui pdimport numpy as np # Impordi numpyskimage impordi andmetest, io # Impordi skimage teegi (andmed – katsepildid ja näidisandmed.# io – piltide lugemine, salvestamine ja kuvamine.)saidilt skimage.color import rgb2grayimportida matplotlib.pyplot kui plt # Importida matplotlib.pyplot (Pythoni graafikuraamistik.)%matplotlib reasimport os # See moodul pakub kaasaskantavat viisi operatsioonisüsteemist sõltuvate funktsioonide kasutamiseks.os.environ['TF_CPP_MIN_LOG_LEVEL'] = "3"impordihoiatused# Lülitage hoiatused väljaWarnings.filterwarnings('ignoreeri')IPython.display impordikuvastimport cv2 cv-na
failist sklearn.metrics impordi confusion_matrixsaidilt sklearn.model_selection import train_test_splitfrom tensorflow.keras import utilssaidilt tensorflow.keras.models import Sequential,load_modelsaidilt tensorflow.keras.layers impordi tihe, väljalangetav, lame, Conv2D, MaxPool2D, BatchNormalizationsaidilt tensorflow.keras.optimizers impordi Adamimport tensorflow kui tfimportida meresündinud sns
Mõned kasulikud lingid ANN-ide ja CNN-ide sisu uurimiseks nullist.
Me määratleme kolm erinevat CNN-i mudelit erinevate hüperparameetritega. Ideaalis on meie eesmärk reaalses maailmas rakendada erinevaid arhitektuure, et maksimeerida täpsust või mis tahes asjakohaseid mõõdikuid, võttes arvesse, et ehitame mudelit mitme kategooria klassifitseerimisülesande jaoks. Meie probleemitüübi valik ei mõjuta visualiseerimispakettide kasutuselevõttu.
Lõime kasutaja määratud funktsioonid, et ehitada eraldi kolm erinevat mudelit erineva arvu CNN-kihtide, maksimaalse ühiskasutuse ja tihedate kihtidega.
4.1 – 1. arhitektuur – madalad CNN-kihid + ANN-kihid
def construct_model():mudel = järjestikune ()model.add(Conv2D(filtrid=64, kerneli_suurus=(3, 3), sisendi_kuju=(128, 128, 1), aktiveerimine=’relu’))model.add(Conv2D(filtrid=64, kerneli_suurus=(3, 3), aktiveerimine='relu'))model.add(MaxPool2D((2, 2)))model.add(Flatten())model.add(Tihe(256, activation='relu'))model.add(Tihe(12, activation='softmax'))model.comile(loss='categorical_crossentropy', optimeerija='adam', metrics=['täpsus'])tagastamise mudel
4.2 – Arhitektuur 2 – sügav CNN + madalad ANN-kihid
def sconstruct_model():smodel = järjestikune()smodel.add(Conv2D(filtrid=64, kerneli_suurus=(3, 3), sisendi_kuju=(128, 128, 3), aktiveerimine=’relu’))smodel.add(Conv2D(filtrid=64, kerneli_suurus=(3, 3), aktiveerimine='relu'))smodel.add(MaxPool2D((2, 2)))smodel.add(Conv2D(filtrid=128, kerneli_suurus=(3, 3), aktiveerimine='relu'))smodel.add(Conv2D(filtrid=128, kerneli_suurus=(3, 3), aktiveerimine='relu'))smodel.add(MaxPool2D((2, 2)))smodel.add(Conv2D(filtrid=128, kerneli_suurus=(3, 3), aktiveerimine='relu'))smodel.add(Conv2D(filtrid=128, kerneli_suurus=(3, 3), aktiveerimine='relu'))smodel.add(MaxPool2D((2, 2)))smodel.add(Lamenda())smodel.add(Tihe(256, activation='relu'))smodel.add(Tihe(12, activation='softmax'))#optimizer = Adam(lr=0.001)smodel.comile(loss=’categorical_crossentropy’, optimeerija=’adam’, metrics=[’täpsus’])#modell.summary()tagasi mudel
4.3 – Arhitektuur 3 – sügavad CNN- ja ANN-kihid
def cconstruct_model(learningRate):smodel = järjestikune()smodel.add(Conv2D(filtrid=32, kerneli_suurus=(3, 3), sisendi_kuju=(128, 128, 1), aktiveerimine=’relu’))smodel.add(Conv2D(filtrid=32, kerneli_suurus=(3, 3), aktiveerimine='relu'))smodel.add(MaxPool2D((2, 2)))smodel.add(Conv2D(filtrid=64, kerneli_suurus=(3, 3), aktiveerimine='relu'))smodel.add(Conv2D(filtrid=64, kerneli_suurus=(3, 3), aktiveerimine='relu'))smodel.add(MaxPool2D((2, 2)))smodel.add(Conv2D(filtrid=128, kerneli_suurus=(3, 3), aktiveerimine='relu'))smodel.add(Conv2D(filtrid=128, kerneli_suurus=(3, 3), aktiveerimine='relu'))smodel.add(MaxPool2D((2, 2)))smodel.add(Lamenda())smodel.add(Tihe(256, activation='relu'))smodel.add(Tihe(256, activation='relu'))smodel.add(Tihe(12, activation='softmax'))optimeerija = Adam(lr=õppemäär)smodel.comile(loss=’categorical_crossentropy’, optimeerija=optimeerija, metrics=[’täpsus’])smodel.summary()tagasi mudelmodel=ccconstruct_model(0.001)
Pythoni moodul nimega ANN Visualizer võimaldab visualiseerida tehisnärvivõrku mõne koodireaga (Gheorghiu, 2022). See kasutab Kerase ja Pythoni Graphvizi moodulit, et luua korralik ja ahvatlev närvivõrgu graafik. Teil on paindlikkus visualiseerida kogu süvaõppevõrku või ainult konvolutsioonilist närvivõrku, mille olete loonud tänu süvaõppe edusammudele (Shah, 2018).
Kasutage oma närvivõrgu pdf-esitluse loomiseks järgmist struktuuri. Kuid enne seda peame ülaltoodud mudelid koostama.
model=construct_model()
ann_viz(mudel, vaade=True, failinimi=”network.gv”, title=”MyNeural Network”)
- mudel — Kerase järjestikune mudel
- vaade — Visualiseerige graafik pärast ann_viz() kutsumist
- faili nimi - Faili nimi
- pealkiri — Mis tahes konkreetne pealkiri graafiku tähistamiseks
ann_visualizer.visualize import ann_vizann_viz(mudel, vaade=True, failinimi=”cconstruct_model”, title=”CNN – mudel 1 – lihtne arhitektuur”)
Pythoni tööriist nimega Visualkeras muudab Kerase närvivõrgu kujunduste nägemise lihtsamaks (kas eraldi või TensorFlow osana). Enamikku stiilivajadusi saab hõlpsasti rahuldada. Konvolutsioonilised närvivõrgud (CNN-id) saavad kihilise stiiliga arhitektuuride arendamisest märkimisväärset kasu. Enamik mudeleid, sealhulgas lihtsad edasisaatmisvõrgud, saavad suurt kasu graafiku stiilis arhitektuuri loomisest, mida see moodul toetab (Gavrikov, 2022).
mudel1=konstrueeri_mudel()mudel2=konstrueeri_mudel()mudel3=ccconstruct_model(0.009)importida visualkerasidPIL-i impordist ImageFontvisualkeras.layered_view(mudel1, legend=True)visualkeras.layered_view(mudel2, legend=True)visualkeras.layered_view(mudel3, legend=True)
. keras.utils.plot_model pakub sisseehitatud funktsioone Kerase kaudu defineeritud ja kompileeritud mudeli joonistamiseks, kasutades Graphvizi ja pydot pakette. Graafiliselt on see vähem intuitiivne kui ülaltoodud paketid, kuid see kirjeldab järjestikuse mudeli (Team, n.d.) põhiarhitektuuri.
tf.keras.utils.plot_model(mudel1,to_file="mudel.png",show_shapes=Tõsi,show_dtype=Vale,show_layer_names=Tõsi,rankdir="TB",expand_nested=Tõsi,dpi = 96,layer_range=Puudub,show_layer_activations=Tõsi,)
Mõned hüperparameetrid, mida tuleks arvesse võtta:
- mudel: Kerase kompileeritud mudeli või mudelobjekti eksemplar
- to_file: Pildi failinimi
- show_shapes: kuvada närvivõrgu iga kihi mõõtmed ja kuju
- show_layer_activation: kuvada neuronites kasutatavad aktiveerimisfunktsioonid
TensorBoard on armatuurlaua liides, mis võimaldab kasutajatel visualiseerida erinevate mudelite logisid. Logid võivad ulatuda mis tahes mudeli valideerimismeetmete (nt täpsus, tagasikutsumine, RMSE, MAPE ja MSE) jälgimisest erinevatel ajajärkudel kuni mudeli arhitektuuri kontseptuaalse graafiku loomiseni. See on võimas tööriist, mis võimaldab visualiseerida, kas kavandatud mudel vastab eeldatavale kujundusele, pakkudes samal ajal teavet selle kohta, kuidas mudelit operatsioonitaseme graafiku abil muuta.
Selle funktsiooni kasutamiseks peame esmalt laadima TensorBoardi ja seejärel looma logikataloogi.
%load_ext tensorboardalates datetime impordi datetimetensorflow import kerast# Määrake Keras TensorBoardi tagasihelistamine.logdir="logs/fit/" + datetime.now().strftime("%Y%m%d-%H%M%S")tensorboard_callback = keras.callbacks.TensorBoard(log_dir=logdir)
Looge Keras TensorBoardi tagasihelistamine ja määrake enne treenimist logikataloog. Saate tagada, et graafiku andmed logitakse TensorBoardi visualiseerimiseks, esitades selle tagasikutsumise saidile model.fit(). Pärast TensorBoardi käivitamist võib selle laadimiseks kuluda mõni minut.
model.fit(X2_rong, Y2_rong,batch_size=64,epohhid = 5,callbacks=[tensorboard_callback])
Märkus. X2_train ja Y2_train on treeninguandmed, mida ülaltoodud koodid ei kajasta. Saate selle asendada mis tahes enda treeningandmetega.
TensorBoard näitab vaikimisi alati operatsioonitaseme graafikut. (Märgend „Vaikimisi” on vasakul esile tõstetud.) Graafik on koodiga võrreldes tagurpidi, kuna andmed liiguvad alt üles. Kuid nagu näete, sarnaneb graafik ligikaudu Kerase mudeli kirjeldusega, lisaservadega, mis viivad teiste arvutussõlmedeni (Tensorflow, 2022).
Lisateavet TensorBoardi kasutamise kohta leiate jaotisest Viide.
Kaubanduslikust vaatenurgast, kus kasutaja peab esitama oma analüüsi sidusrühmade rühmale, muudavad need diagrammid arutelule keerukamaks. Need ei pruugi olla äärmuslikud lisaväärtused. Kuid akadeemilisest ja õppimise vaatenurgast on nende pakettide kasutamine nende sügavate õppearhitektuuride kuvamiseks kasulik. Minu arvates paistab ANN visualiseerija teistest silma, kuna diagrammi on lihtne seedida, samas kui TensorBoardi graafiku väljund nõuab enne tulemuste tarbimist rohkem tehnilisi üksikasju.
Gavrikov, P. (2022, 13. aprill). visualkeras Keras / TensorFlow jaoks. GitHub. https://github.com/paulgavrikov/visualkeras
Gheorghiu, T. (2022, 21. oktoober). ANN visualiseerija. GitHub. https://github.com/RedaOps/ann-visualizer
Shah, A. (2018, 28. aprill). Tehisnärvivõrkude (ANN-ide) visualiseerimine vaid ühe koodireaga. Keskmine. https://towardsdatascience.com/visualizing-artificial-neural-networks-anns-with-just-one-line-of-code-b4233607209e
Stack Overflow. (nd). masinõpe – kuidas kujutate närvivõrgu arhitektuure? Data Science Stack Exchange. Vaadatud 29. oktoober 2022, alates https://datascience.stackexchange.com/questions/12851/how-do-you-visualize-neural-network-architectures
Meeskond, K. (n.d.). Kerase dokumentatsioon: Mudeli joonistamise utiliidid. Keras.io. Vaadatud 29. oktoober 2022, alates https://keras.io/api/utils/model_plotting_utils/#modeltodot-function
Tensorflow. (2022, 6. jaanuar). TensorFlow graafiku uurimine | TensorBoard. TensorFlow. https://www.tensorflow.org/tensorboard/graphs
Kuidas visualiseerida Pythoni närvivõrguarhitektuure, uuesti avaldatud allikast https://towardsdatascience.com/how-to-visualize-neural-network-architectures-in-python-567cd2aa6d62?source=rss—-7f60cf5620c9—4 kaudu suunas datatascience.com/feed
<!–
->
- Bitcoin
- bizbuildermike
- blockchain
- plokiahela vastavus
- blockchain konverents
- Blockchaini konsultandid
- coinbase
- coingenius
- üksmeel
- krüptokonverents
- krüpto mineerimine
- cryptocurrency
- Detsentraliseeritud
- Defi
- Digitaalsed varad
- ethereum
- masinõpe
- mitte vahetatav märk
- Platon
- plato ai
- Platoni andmete intelligentsus
- Platvormplokk
- PlatoData
- platogaming
- hulknurk
- tõend osaluse kohta
- W3
- sephyrnet