Kerase raamatukogu pakub võimalust sügavate õppemudelite koolitamisel arvutada standardsete mõõdikute komplekt ja sellest aru anda.
Lisaks standardsete mõõdikute pakkumisele klassifitseerimis- ja regressiooniprobleemide korral võimaldab Keras teil ka süvaõppemudelite koolitamisel määratleda oma kohandatud mõõdikud ja neist aru anda. See on eriti kasulik, kui soovite treeningu ajal jälgida jõudlusmõõtu, mis haarab paremini teie mudeli oskusi.
Selles õpetuses saate teada, kuidas kasutada sisseehitatud mõõdikuid ning kuidas määratleda ja kasutada oma mõõdikuid Kerase süvaõppemudelite koolitamisel.
Pärast selle õpetuse täitmist saate teada:
- Kuidas Kerase mõõdikud töötavad ja kuidas saate neid oma mudelite koolitamisel kasutada.
- Kuidas kasutada regressiooni- ja klassifitseerimismõõdikuid Kerases koos töötatud näidetega.
- Kuidas määratleda ja kasutada Keras oma kohandatud mõõdikut koos töötanud näitega.
Alustage oma projekti minu uue raamatuga Deep Learning With Python, sh samm-sammult õpetused ja Pythoni lähtekood failid kõigi näidete jaoks.
Alustame.
- Uuenda jaanuar / 2020: Uuendatud API Keras 2.3 ja TensorFlow 2.0 jaoks.

Mõõdikud ja kuidas kasutada kohandatud mõõdikuid Pyasoni Kerasega süvitsi õppimiseks
Foto: Indi Samarajiva, mõned õigused kaitstud.
Õpetuse ülevaade
See õpetus on jagatud 4 osaks; nemad on:
- Kerase mõõdikud
- Kerase regressioonimõõdikud
- Kerase klassifikatsioonimõõdikud
- Kohandatud mõõdikud Kerases
Kerase mõõdikud
Keras võimaldab loetleda mõõdikud, mida oma mudeli koolituse ajal jälgida.
Seda saate teha, määratesmõõdikud”Argument ja funktsioonide nimede (või funktsiooninimede varjunimede) loendi pakkumine koostama () teie mudeli funktsioon.
Näiteks:
mudel.koostama(..., mõõdikud=['mse']) |
Konkreetsed mõõdikud, mida loetlete, võivad olla Kerase funktsioonide nimed (nt mean_squared_error) või nende funktsioonide stringide varjunimed (näiteks 'mse').
Mõõdikute väärtused registreeritakse iga epohhi lõpus koolituse andmekogumis. Kui pakutakse ka valideerimisandmete kogumit, arvutatakse valideerimise andmekogumi jaoks ka salvestatud mõõdikud.
Kõik mõõdikud esitatakse üksikasjalikus väljundis ja ajalooobjektis, mis tagastati helistades sobiv () funktsioon. Mõlemal juhul kasutatakse mõõdiku väärtuste võtmena meetrilise funktsiooni nime. Valideerimise andmekogumi mõõdikute puhul kuvatakseval_”Võti lisatakse eesliide.
Treeningmõõdikutena saab kasutada nii kaotuse funktsioone kui ka selgelt määratletud Kerase mõõdikuid.
Kerase regressioonimõõdikud
Allpool on loetelu mõõdikutest, mida saate Kerasis kasutada regressiooniprobleemide korral.
- Keskmine ruutviga: mean_squared_error, MSE või mse
- Keskmine absoluutne viga: mean_absolute_error, MAE, mae
- Keskmine absoluutprotsendi viga: keskmine_absoluutne_protsent_viga, MAPE, kaardistamine
- Kosini lähedus: koosinus_lähedus, koosinus
Allpool toodud näide näitab neid 4 sisseehitatud regressioonimõõdikut lihtsa väljamõeldud regressiooniprobleemi kohta.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
alates numpy import massiiv alates keras.mudelid import Järjestikune alates keras.kihid import Tihe alates matplotlib import püplot # jada ettevalmistamine X = massiiv([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) # loo mudel mudel = Järjestikune() mudel.lisama(Tihe(2, sisendi_dim=1)) mudel.lisama(Tihe(1)) mudel.koostama(kaotus="mse", optimeerija="adam", mõõdikud=['mse', 'mae', 'mape', 'cosine']) # rongimudel ajalugu = mudel.sobib(X, X, ajastud=500, partii_suurus=len(X), paljusõnaline=2) # maatüki mõõdikud püplot.süžee(ajalugu.ajalugu['mean_squared_error']) püplot.süžee(ajalugu.ajalugu['mean_absolute_error']) püplot.süžee(ajalugu.ajalugu['mean_absolute_percentage_error']) püplot.süžee(ajalugu.ajalugu['cosine_proximity']) püplot.saade() |
Märge: Teie tulemused võivad erineda, arvestades algoritmi või hindamisprotseduuri stohhastilist olemust või arvulise täpsuse erinevusi. Mõelge paar korda näitele ja võrrelge keskmist tulemust.
Näite käivitamine prindib meetrilised väärtused iga ajastu lõppu.
... Ajastu 96/100 0s - kaotus: 1.0596e-04 - keskmine_ruudu_viga: 1.0596e-04 - keskmine_absoluutne_viga: 0.0088 - keskmine_absoluutne_protsent_viga: 3.5611 - koosinus_lähedus: -1.0000e + 00 Ajastu 97/100 0s - kaotus: 1.0354e-04 - keskmine_ruutude_viga: 1.0354e-04 - keskmine_absoluutne_viga: 0.0087 - keskmine_absoluutne_protsent_viga: 3.5178 - koosinus_lähedus: -1.0000e + 00 Ajastu 98/100 0s - kaotus: 1.0116e-04 - keskmine_ruutude_viga: 1.0116e-04 - keskmine_absoluutne_viga: 0.0086 - keskmine_absoluutne_protsent_viga: 3.4738 - koosinus_lähedus: -1.0000e + 00 Ajastu 99/100 0s - kaotus: 9.8820e-05 - keskmine_ruudu_viga: 9.8820e-05 - keskmine_absoluutne_viga: 0.0085 - keskmine_absolute_protsent_viga: 3.4294 - koosinus_lähedus: -1.0000e + 00 Epohh 100/100 0s - kaotus: 9.6515e-05 - keskmine_ruutude_viga: 9.6515e-05 - keskmine_absoluutne_viga: 0.0084 - keskmine_absolute_protsent_viga: 3.3847 - koosinus_lähedus: -1.0000e + 00 |
Seejärel luuakse 4 mõõdiku rea graafik treeninguperioodide kohta.

Regressiooniks sisseehitatud Kerase mõõdikute reajoon
Pange tähele, et mõõdikud määrati stringi pseudonüümi väärtuste abil [‘mse‘, ‘mae‘, ‘mape‘, ‘cosine‘] ja neile viidati ajalooobjekti võtmeväärtustena, kasutades nende laiendatud funktsiooni nime.
Samuti võiksime mõõdikud täpsustada laiendatud nime abil järgmiselt:
mudel.koostama(kaotus="mse", optimeerija="adam", mõõdikud=['mean_squared_error', 'mean_absolute_error', 'mean_absolute_percentage_error', 'cosine_proximity']) |
Funktsioonide nimed saame ka otse määrata, kui need skripti imporditakse.
alates keras import mõõdikud mudel.koostama(kaotus="mse", optimeerija="adam", mõõdikud=[metrics.mean_squared_error, metrics.mean_absolute_error, metrics.mean_absolute_percentage_error, metrics.cosine_proximity]) |
Kaotuse funktsioone saate kasutada ka mõõdikutena.
Näiteks võite kasutada keskmist ruutu logaritmilist viga (mean_squared_logaritmiline_viga, MSLE või msle) kaotusfunktsioon mõõdikuna järgmiselt:
mudel.koostama(kaotus="mse", optimeerija="adam", mõõdikud=['msle']) |
Kerase klassifikatsioonimõõdikud
Allpool on loetelu mõõdikutest, mida saate Kerasis klassifitseerimisprobleemide korral kasutada.
- Binaarne täpsus: binaarne täpsus, acc
- Kategooriline täpsus: kategooriline_täpsus, acc
- Hõre kategooriline täpsus: hõre_kategooria_täpsus
- Üles k kategooriline täpsus: top_k_categorical_accuracy (nõuab parameetri ak määramist)
- Hõre Top k kategooriline täpsus: sparse_top_k_categorical_accuracy (nõuab ak-parameetri määramist)
Täpsus on eriline.
Sõltumata sellest, kas teie probleem on binaarne või mitme klassi liigitusprobleem, saate määrata 'täpsus'mõõdik täpsuse aruandmiseks.
Allpool on toodud näide binaarse klassifikatsiooni probleemist koos sisseehitatud täpsusmõõdikuga.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
alates numpy import massiiv alates keras.mudelid import Järjestikune alates keras.kihid import Tihe alates matplotlib import püplot # jada ettevalmistamine X = massiiv([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) y = massiiv([0, 0, 0, 0, 0, 1, 1, 1, 1, 1]) # loo mudel mudel = Järjestikune() mudel.lisama(Tihe(2, sisendi_dim=1)) mudel.lisama(Tihe(1, aktiveerimine="sigmoid")) mudel.koostama(kaotus='binaarne ristkoopia', optimeerija="adam", mõõdikud=['accuracy']) # rongimudel ajalugu = mudel.sobib(X, y, ajastud=400, partii_suurus=len(X), paljusõnaline=2) # maatüki mõõdikud püplot.süžee(ajalugu.ajalugu['accuracy']) püplot.saade() |
Märge: Teie tulemused võivad erineda, arvestades algoritmi või hindamisprotseduuri stohhastilist olemust või arvulise täpsuse erinevusi. Mõelge paar korda näitele ja võrrelge keskmist tulemust.
Näite esitamine annab täpsuse iga treeninguperioodi lõpus.
... Ajastu 396/400 0s - kaotus: 0.5934 - acc: 0.9000 Ajastu 397/400 0s - kaotus: 0.5932 - acc: 0.9000 Ajastu 398/400 0s - kaotus: 0.5930 - acc: 0.9000 Ajastu 399/400 0s - kaotus: 0.5927 - acc: 0.9000 Ajastu 400/400 0s - kaotus: 0.5925 - acc: 0.9000 |
Luuakse joondiagramm täpsusega ajastule.

Klassifitseerimiseks sisseehitatud Kerase mõõdikute reajoon
Kohandatud mõõdikud Kerases
Samuti saate määratleda oma mõõdikud ja funktsiooni loendi funktsioonide loendis.mõõdikud”Argument helistades koostama () funktsioon.
Mõõdik, mida mulle sageli meeldib jälgida, on keskmise keskmise ruutviga ehk RMSE.
Saate aimu, kuidas kohandatud mõõdikut kirjutada, uurides olemasoleva mõõdiku koodi.
Näiteks on allpool keskmises ruutus_error kaotuse funktsiooni ja mõõdiku kood Kerases.
def mean_squared_error(y_tõsi, y_pred): tagasi K.tähendab(K.ruut(y_pred - y_tõsi), telg=-1) |
K on Kerase kasutatav taustaprogramm.
Selle näite ja teiste kahjufunktsioonide näidete põhjal ...