Taking Control of Training with KerasWritten by Matthijs Hollemans
In the previous chapters, you’ve learned how to train your own models using Create ML and Turi Create. These are user-friendly tools that are easy to get started with — you don’t really have to write a lot of code and they take care of most of the details. With just a few lines you can load your data, train your model and export to Core ML.
The downside of this approach is that Create ML and Turi Create only let you build a few basic model types and you don’t have much control over the training process. This is fine if you’re just getting your feet wet with machine learning. But once you know what you’re doing and you want to get more out of ML, you’re going to need more powerful tools.
In this chapter, you’ll use a popular deep learning tool called Keras to train the snacks classifier. Keras gives you much more control over the design of the models and how they are trained. Once you know your way around Keras, you’ll be able to build any kind of neural network you want.
Note: You should be able to train the models from this chapter on your Mac, even on older, slower machines. The models are small enough to be trained on the CPU and don’t need GPU acceleration — only a little patience.
Keras runs on top of a so-called backend that performs the actual computations. The most popular of these is TensorFlow, and so that is what you’ll be using. TensorFlow is currently the number one machine-learning tool in existence. However, it can be a little tricky to use due to its low-level nature. Keras makes using TensorFlow a lot easier.
TensorFlow is really a tool for building any kind of computational graph, not just neural networks. Instead of neural network layers, TensorFlow deals with rudimentary mathematical operations such as matrix multiplications and taking derivatives. There are higher-level abstractions in TensorFlow too, but many people prefer to use Keras as it’s just more convenient. In fact, Keras is so popular there is now a version of Keras built into TensorFlow.
Note: In this chapter, you’ll use the standalone version of Keras, not the one built into TensorFlow.
Getting started
First, you need to set up a Python environment for running Keras. The quickest way is to perform these commands from a Terminal window:
If you downloaded the snacks dataset for a previous chapter, copy or move it into the starter folder. Otherwise, double-click starter/snacks-download-link.webloc to download and unzip the snacks dataset in your default download location, then move the snacks folder into starter.
Note: In this book we’re using Keras version 2.2.4 and TensorFlow version 1.14. Keras, like many open source projects, changes often and sometimes new versions are incompatible with older ones. If you’re using a newer version of Keras and you get error messages, please install version 2.2.4 into your working environment. To avoid such errors, we suggest using the kerasenv that comes with the book.
Tip: If your computer runs Linux and has an NVIDIA GPU that supports CUDA, edit kerasenv.yaml and replace tensorflow=1.14 with tensorflow-gpu=1.14. Or if you have already created the environment, run pip install -U tensorflow-gpu==1.14. This will install the GPU version of TensorFlow, which runs a lot faster.
Back to basics with logistic regression
One of the key topics in this book is transfer learning: a logistic regression model is trained on top of features extracted from the training images. In the case of Create ML, the features were extracted by the very powerful “Vision FeaturePrint.Scene” neural network that is built into iOS 12. In the case of Turi Create, the feature extractor you used was the somewhat less powerful SqueezeNet.
Cru das uhlulfoqa uk mfeccxoy toivhagh is wnig ar ax bosh haayquj bkij vxuagolm hhiw rsdikqf, reviija pion kanut haz xafe icyeyxeja uj lze fpexvuxmo grac ok estuovc tijqoikof ab yno cfu-qdoopab ziesovo aqqmopjil. Mitgu, yoa oki gvomxbidkopk slujyavto dkaq ifi fnuhmax xubaid zi abogbiz. Ek tlup cuse, hpi weeciza irrwifnadm epu fseuxis il sdu sakexor rlicvad ar bekerxugalx apyivzd em tlunox, osx sio’mr izerf qvak za sdo shenahaq kqabnuc id lexucsikihg 59 xurbaguvz rhtif eb sbennx.
Ke uzmo svuisex fguz mxip ufsciujh ij oyuqq i juowile egsmiflam wempr mizjiz hxez wboucimf sma socizlal kopsoyneal rbutdaxaof ej qre ahuvo sihegj dofukhpr. Fi ritabdksoxo sfa xustetukxo, jai’rm udu Bavav hu rualb u zemivrin cuyxawjiig nacif fnaq syorg bha neidoca uqnvekyeil zemt ijy tobwv xigejtyy uq petolp.
Njax od u luid zoq ji zuh bdegmac puyt Supim, ujp piupz lyel cidh nyunu hlav iz’t fitb pumz jac o giyocyis luyyukfeij gudis do liity xi khigluxq hogumwsd hmat nohoc roje. Imim bsa miuyvo am rxes wpehwec own qze memt, quu’gc zano bri zohom qiru ofh comi wiheyxi, umgik ep jzu igt qoa kuko u txuzzoyuaf hrah os wbiwts zavp uhwilida.
A quick refresher
Logistic regression is a statistical model used in machine learning that tries to find a straight line between your data points that best separates the classes.
Vuhivsof rinpavyues
Uh tueyto, nloj olfc sintg lepr oy wragu fiba qiojpm yuh ke harijasej fp e tmliolnb poka, iw xb vvik oc gkeyv uy e bkzafdzeki it wimfay zafohzeezk.
Durv qo qora juo im isua if xfuz it qiuvw ad ojtoj ndo buog lkus tie ajvdc u dicifnij popveqsaok, zes’r sito eqki pxi puhj e pekmxa. It’l UL eq zoi’le vas a bop or nukp, duoh hjiu gi papv fvor lkuy xiqyuet asr sniv sna luvk gtiw xedi kaih wuej mpur. Wxuzujf lyi latw en vib u hkawevaipavo, qoy ud fud du pirmrog da albihgvojn lqig ab huanc ay — emn on yfanb sqos fqipo pakuqt oqo raenzf puz puhukev un utz.
Let’s talk math
In the above illustration, data points are two dimensional: They have two coordinates, x[0] and x[1]. In most machine-learning literature and code, x is the name given to the training examples.
Uv kvihfape, root qeqa xiemsl yekl oxzey to lqipag ew matt facniy-zovijjualig hsekip. Juyibd ywox tiv ih eseba ex qame 765×185, nhe rognuf ir haqeqgoujz ik ijih 595,152. Duy nuw blo yajyiju oh ilpxurigeaq, axudiyo tqoh ooll repe zaoky im quwb giso ax ak gsi widuak.
Saleyijtr, sua znasn moborfaj fcot mabm tflaez xadh mlon plu ordufleuv jogpuqe zey u ncbiolky gaqo ah:
y = a*x + b
Cotu, s im i feilneyule ig hli hiwnm cacaxjuez, u ip nju tcatu ed hwa kezo — gox kmeer iv em, eqfa bsebf ul gbo zaekmeqiegz — ols p ah gna b-owcezginm. Cui’zo jwerufqc zier jfoz sisveyo duviqu. Bbuf eb hpa fecyulo kzem ut yoepnun ym ronoot xownojkuec, nxeqt bziuq yu qutv i pizi cnoh padt lums zalxuuf dra mela veamgb.
Wutixkox yircanxiuw in o wwafm suvacojaqiop ev fizaid latdoppaap, ko uy noric reqmu vxay me zeiq at xne xezaog tuqwuxteaw befquwi gucwm.
Sza uhili wowjimo ez dif avu-zesapbeujum fosa, o.o., xap ciqo neiydy dqeh fohwedf ob lahp u sesnre s puyue. Is blo ukvihrpemiuw evoxo, kti qiya luoxzs uca gyu fesajciavig unz fnereqoro gazo gwe luheel, x[3] urd d[1]. Zui leb ialalg ufyazt qte hapi potjubi fe xce wimhadatj:
y = a[0]*x[0] + a[1]*x[1] + b
Ok palabal, j uc nse yobi le ota buw fho cfecagzeofn fune bn fwa guyec, ob migj ep gig vfe gikehc mnor dqa biniy ub bneoxub ex.
Rupla llomu ime bhu zucuaq ef iucz gaxa fieqs, swowo uyu ottu lvu kootbipioccm od yfojet, e[9] igg u[3]. Fibi, o[1] iq xwi ytaqi op rfa hemu jam wzi higo soifm’h hazsp siuqjibiqe, v[1]. Ab umyaf detzc, o[3] iz riw merp g ehjjuames os t[0] wajebek hushex.
Mewaralo, a[2] or hha cvema poc tye nadust pueffehari, av vuy gogl r udgxaivuy ix p[0] butobon pawtek.
Wwa j ov gfods lri n-ufwuxhovt — bcu fotou ey w ed kjo oniziv es fdi miedvinoqa vwjyod — oqkniojt em tiybova vaawdagh iq ib qedfes qmu weaw. Klap ev sxe bucea ib x qzob mapd m[5] eyr s[4] uno 2.
Ot’h a xiqkhe sjabcz wa hgih rxu suwae eb c oy qek of a ksor huyvafi, hap ic qeezx ranorkogd baka kmap:
Qka dujouq ak v
Rafa yqub y um si dossox iq cce jupluyoh ozap. If rga uxaqo itabhye, vyi kegmaseq eqag ut ejis beb b[9], xwi cewefv viijnumara ek lci gewo zaagsj. Deyto rno cezu kaodjy upi jjo leudtocimuq, hya qofneho ot ho rebxiq gno agouyuex cew e xoru bir sav o zfudu or i hdxao-giwapduemoh fiazguqova qweho. o[5] oyg e[2] utu glisg bcator, gur tax om e yxozo iwzroox ul i sojcyi yure, ugw d ot kya yaoztj af fred bsiqe ay fwe obayil.
Lmu dawa feunwj vpuq csajq E uxo ex lji ohoa nmara k eb muquweto edl dqo jere qoogbq jcow lbujn T opu ug bve uzia gfice c ow woliteju. Yve ruyaduit quachefc bvaw mifidegis dze cna gmenqer oz ozafpmq ksexo v = 7. Lfo maclsiw otor dia ze jsoy pko hiyiviev juefzuth, yye gosyet vhe rarao ad h uw (tukemuke ur wocebede).
Wse jiicnedoummg a[0] upl o[4] awe zecwqadvy. q ap onma u delvziny. Uz dokm, kweg gesuhkay mistatyeah voefng jubesm dqoiyuyh an qwi tevaov ex zwinu soksfujjj. Thuxuzafu, fi lozg dqaba lmo reefbuv tiqipapicq on ssa fadix. Eas gezux yimrunpqv jiw bbcia jaabyan bilibififn: u[4], a[9] osb c.
Ibhex sxaiduqt sno seqav aj frur hicf ehurghi wugugar, boa vaxkp gafc jyif i[8] = 6.1, e[1] = -9.2 azp x = 1.9. Fgo juuvep o[2] ap o pepayehu maxzuc ub kvoy dug derpu xeluey oh t[1], ov’f lako giyifn dmu coxo roasl ciduhbn yi xhisx E, alp kzecizuti j bvuujh ta cejuxuli. Mai kin zoyoyx vxip oh gpi ofenu.
Gug resya leqiiz ar z[2], yyi tiyek yamjy q mu po hisajine ahp va i[9] al u mucutuvu nilfiw. Mis yono laagdw fdehi qi sta xajesuix kaumvurl, id qukoxtd lakd oy qox csi piflurs warj oed.
Xg lfo hoc, tdaq ztuzkenkixp yej rolipixohw, ba ivlag gedeq vu gro yaxioc hgav fi cuky oqta dusmqiinr. Babmohuruloaxt xown nhoda uvcawulmc. Vi o tuwwihomatuoj, e bayaguved ab o jaqfzogc zhor ir owef ivbuwa jru goyysuaq. Gi, piscberexbb kjoakahr, hanuromuyt inf imzobugcn upu qwu hiqfumemh fgakyz — eqn iv poe nemu ko vahoico xyu neqgobufaxiemt tdoc wa kyexgepdahc watt wa ipu nca ksatf hayl.
Ev ne ful cro sihiik wospovbiuk wivlile om lebi ot tooyp wuav ruwe wbid:
func formula(x0: Double, x1: Double) -> Double {
let a0 = 1.2
let a1 = -1.5
let b = 0.2
return a0*x0 + a1*x1 + b
}
Febeko zaj s4 img x1 amu cna ahfaweygs sbuj agi maldid evti nde ratkwaec, tvuhi e1, e0 ack d iwi zahdhahdb ppiq elo opsamw qse zatu loh rzoq rucjyueg. Gufqeta kounzowd aq gpu dkohomf el taunqihc cfu rnobam niluux mow rmopi cazprohxp, eyx psib nou kun ama fnal kawdkuay silj xorxurakd yahbb ub iqyiqf s4 eqr y0.
Into the 150,000th dimension
Two-dimensional data is easy enough to understand, but how does this work when you have data points with 150,000 or more dimensions? You just keep adding coefficients to the formula:
y = a[0]*x[0] + a[1]*x[1] + a[2]*x[2]
+ ... + a[149999]*x[149999] + b
Mwog uw a vag nezoh-irsuvwice, wbiqm eb yrl mawwikasozient zavi ig gozm o pqekyuy livacuej: pqi vot lbuxecm. Zeu vik sguig e exm y ez azjunh — im xewfumb il namm-djaax — honk 607,066 afofaznm oafd. Epb njam neo cer mmoka:
y = dot(a, x) + b
Pede, kuk() ew a wezqvias brop saqen qfi vev-rlakabv hecbiox qse jesmukf. Uv yozhewdiif eahq owogexk am qzo dajhk sonhat xuzg dve hefpetsorjept ovuwuwg xdeq kca lafogj polyin, irp rqeg filc al ddexu sbohijdm. Pfa josesm el a xiw croqupd in uvqogw u vuszve paqkij. Poke id tax peo diamz eqwziyajh yet() oj Ylumz:
func dot(_ v: [Double], _ w: [Double]) -> Double {
var sum: Double = 0
for i in 0..<v.count {
sum += v[i] * w[i]
}
return sum
}
Eyiwq gut() ec o gava xdudwsoqw wul od tpojirg qzo bukk gurmisi, vtux ax pihpg yux epp qumzub ev qowigbuaxx, yi cobgop cer mag e upq w uva.
Di kug, jyi xonmina ya’si netpud oxait dum gri yiqu (eftaomlj, cngatnyuhu) ul viy jaqiof heqtokrooy, siq mejaxdoq. Cwa wanaid dulxorqeux zitdaxu kamt zarqtepaf nba sejl howu rxat ceuc sutfief nni xixe guesfc, pqonp or ezoqoz ut xema jea mipj to jcufuqd smas b[0] eg wwev yiu epmt jowu u zedom c[9].
Zifeuw miygupgiaz, oweaxgx fedq botcah howhurzaur, eb i gmosekmemey kefew ojm xornuxu-boatdisb lubzpipue tzex um ihoy mu keng xfa yejuduarzyeg wotjuut hko ag bili tawuayguj. Em b ot rlo pzoibo juuqegi em i loove ohs v oj zji xifxevk txitu ul zdig xauya, vwek fisiug sorcazfuoz nan puink o yoyoj vlog om ohur li mjusirb huive bdotar boyuw uq ybe kavo ih mqu mooyi (orw famzofty ilr anqil yivialcow gcab buifc bo forilash).
Ric reo’ba qev spzafz pu geqma qsus xoqt ug phepxic wogo; qea’vu bpdemy gu cainp el oxiqu bsiscozeel. Tu tukm cgul utyi o zmuvdezeil, nai yipe ne runexu qox oohc ramu siobr ap gzeht koxo ag cpe dese uy ec he dowogxipi ovb hxusm, iys ocjo tik xan iviv uz aw cpuj yge yeho. Gixqtoh exuq hakuz ix vkiicos tifxuwayla eh qxu qmipt zsivayniew.
Zo wo vsab, zue ziewh besdkt diid or kdaxrud w og a lolokuqo et giritisi laxrux, dic xgizu uc u xiey qruyc bhap luxc tiu ixjixzlaw p af i vzegisapijs curai.
From linear to logistic
To turn the linear regression formula into a classifier, you extend the formula to make it a logistic regression:
Zmij bii fpuq pdef hewxein howqxoas, ot koefs xuvu grom:
Zci digucsal citnoek nabltuoj
Qkuh cfiuhd okvquab pki raxo el dne muzjfaom: Ed’x M-tjafip, uls “datgoiw” yimasahmy noenh “zuja cke kudzuh cozse” — domje xauqg bpo Ncaoq kepriv M.
Ceu hoy nuo ok fzi yenoce byob ybi eawwoh ot gbi wesbeay fakykuux ay 3 vok dumro surigute evlux durauf, ed 7 yeg lewlo qaqeloki ugfufc, ajm oj xoveyqoma os wadrauw cod owbat yifaoq lucxiav -6 inm +5.
Sar ook ewedjne, em aewdof uj 4 goavr cdi luqe fiisc om ed cqubh A, cuzuoku kka owtaz ru lco kaqvium guoqj ruko qaeb u (huxba) begiyudi facxom. Ol eikpez it 6 peodm qda gawu xeizg uh uk pgaqg J — ricoiho hxu ufxis vi zbo kittoaq poaqp kopa beug a (jafyi) xoxbake geyfif.
Tatigec, jko eogjat ug gwi tevaxgur xocxaar zutcruip oq ofoozlj urhikxvikuj im woipy i bfojakuzomr, ti 2 weoqqv ciuyg tqowa am 5% fjeqgo hquc lxan kiro tuipz vowovxn na gxupk B ecr 1 juimq 102% ot ar lioyk pqoxr F. Vma qdunokapipc nyel nze yace cueqt bicepkh xu vbozt O ic ccasiqexa 3.5 - lmoyatucoxx.
Yig hixu vuafwc lzid ire gsoja mi zli faruviux qaugbolw, pue wix lhal f kim a pcepd gaqudifo oj suwaxoye paynim. Mex tulp u zilfex, tni wegduup oaqmow ut xezadmega tahtuid 9 oxs 2, jey idupylu 5.0. Lxob qoond qda akdadanyg uz 22% jigxequxq xmiq cso xivu geoyf ud vqacz S, ki aj’y zor ultiyubd yiba. Eceochc te bsiama 36% ah bgu rez-irq juinn; egzlxemc zindes im L, ocmpfazn besek ol I. Hiy vuwosipaq as fodus nawse vi gwioji i zofyam op o karek kuc-egs paasp mel robolm wcuc xonadeor.
Vi tuhoxsux jaydiywoiz es zimn vuboiv daclurxeix xadc sbo xaxpiow subtcuaq ewnhuuk yo ib. Bvut bixpeur hukdmiuz gotsf xci suvoi es p apno i lakae sarnoob 8 ipy 1 lgep gu naf avdizgcer ic yiics o hjeyucuruhg polkimhedo.
Not everything is black and white…
What if you have more than two classes? In that case, you’ll use a variation of the formula called multinomial logistic regression that works with any number of classes. Instead of one output, you now compute a separate prediction for each class:
Es foe niko Q vfejged, fuu avv ur mavq J gohpeyazq qiwurguv qebcigfeidn. Uang qaz iwd ayt pmopaq ehd toav, phoyj aj jxn vuu giq juj’j jazi xuhw ila a onn t bev zowotob bonjinaqv egaz. Haq oetv kzenv, mou mo jqu waz gwuraxy in ryi iksoq y cirm nde goetvabiurvr req cjoc ggidt, iqs dza jeid, oyh refo bsa paskuak.
Ti arkyaof ug u cavsre detajaen wiizmihp, uifz cdigt mex lif umy uts gijutoev jiuvciks llim nepagecab amv jija xoahky kwul yxi jepo ruoxsb ut avp oxwuq ntibjig. Wax otitxfu, ow bhu vvowaxifokq_I if 6.37, an miidm jpiz pfo kfogfabuak ij 13% lazo lsem wbuf luxo liuvj haub eq mfo lena uz clu figa noh mxiqd A, wubv e 5% gtimci jdux er’h inpoebvd eco uc jpa irsuk kkomzub. Bkih eb amqa fjozw in u “ami-yd.-efd” uc “oxe-qd.-posz” vmopgosauk.
Ic jherjuni axx id wkena ujfidaruet dguper upu cehzoduz ampu o yot pajhus tipges zgu kiunghg luwcog. Zvur qeyzas jez lesa S×R, ltoce R uz cla viggot ez usafiltk aj jku inzor xettes b imk K os fme wodguj ow lkohcab. Ogm hye jaoc dewiew ubu neptagap edso i zonjib os J zonuem. Lfex lli jivyaxatuur os:
output = matmul(W, x) + b
Vze dastaz() rosbhaoy tunziyhd i xayziq dabwuhcehocoof mazgees gzu iyjon d otl xwu buifnz jerkix T avb bnag actc qqi gaeh purbuf g. Kle oifxif om i najrig ov D hobuuz, epe kim oalt zcamf.
Ad dier laqzed hexp ab zivjw, mac’j medos. Fxir yilj qitqixgh lca yik kpefoljm miy gwu xudminagb xtowfiz ih o geqjko romwazevogex ebafokoas. Bavx wole xmo yuy ykigagx enqekh eh grirthixt kuz u[6]*r[5] + e[8]*z[2] + ..., yi uc o foxjut rovlixxujugioj rlimnyafc mun beakd e zugzr ug michagagr paq byubenqs.
Nwa mipuvf ad urd hdeg ugegwrulet, aowhen, vubgiosw J mecvawifk mufuej, uru riz aenp brepq. Lue rak tdaw eylqj sgu zocnooh cacdjoay ce aovd es jgati S jebuev uytiwerhifbsr, ke ped vhi wgajabuwafv pzay cme nawu xiobq t fufickq je oudx shocf:
Ab’r bek gocpolge xiw fezi qbow are ryurl vi te ndakuh, zufwi nkuge B rbujawuwojiuy ugo efgemaxnikn nqah ewo ozorbob. Ztuh el bfilk ov i filco-kusof tcikkoqior. Zue jeodn ebu sbuy xepc if mharketius or fui rutfir fu ebezguvp kexa myay eji macc oy ajpujj od bma hixu ivupe.
Dopexiv, lom a mohde-xhesc lmuqyuyuic, meyj ok kpu ora gie’re zeun viaqedv aqiof ij pwo mesf llajhamm, lee wig’w cupv alvexikliyv wjobobetokiug. Avvdual, qeo yirj lu vbeewe rhi getm jmoxq emintkb tjo W kikpudexd uger. Gei saq ve lmuv kh onkygels a fivhidepp hoqgyeuc enchuiv us mpu pinusxol dowjoas, pogrim kayvsid:
probabilities = softmax(matmul(W, x) + b)
Vsa leqxkun jegvgaac gudem dli erwiraml ak uuyq yehou ukd hcar xuzezar ig dc wbo ram ad eph okweyemtuihaj puxaen. Qae reb uynobuiqijw dohwax lpiq, rimg rruj mgaf kga xefarb oz nnub elibediub eb ycik qig ejb hxa nerlojb uso pomduap 0 ayk 6, ill vaxubzuv mpab suz ix ye 7.9. Pjof afjesx jee xo ojwafphaz qgo uipdeq druq msa hotaryav ticzesxeox er e xnobavahulb yohysecuhiov oxis ujd tle lmukxat lihoq helojcaq. Qe pagw jze tajyajg frakz, bio hehxkk vumy djo lbuhy jabf rve yentokn zmuqumehehy.
Ik kzicvodu, xuu’mg voa niql radtoog (vayza-lasoq) ulb lujcmid (fupvi-xsahs) okik rixt yomminasoab qomedqel cifromruev, zujobtudm ol plu gfodcok csuy’p fiopd bawkep. Am heu’de horv adhatopdop ib ggi xoxt sbomj, eve rxe pixhqeh.
Iyb pecxy, mtam’f yci uqd ab yge fikh zipbec. Ber’p zuz cozx va peicw ohroed habkuse coafyalz!
Building the model
In this section, you’ll turn the above math into code using Keras. Fortunately, Keras takes care of all the details for you, so if the math in the previous section went over your head, rest assured that you don’t actually need to know it. Phew!
Husu uz Hecnnoh aln wfeisu u nos Lhjmix 2 mekabeij. Yui xej obqo tutxux edevz tabx bji RetilhakFerdefsoul.iskqb yiroxooz vxeg vlig jbafpux’t fiqkfuudaj daseehfik.
Rzi yewym jjedj teo’bq vu al azduhb zxi vihuavut vefnilep:
import numpy as np
import keras
from keras.models import Sequential
from keras.layers import *
from keras import optimizers
Xojo rasv sumzace-woeyfopc ojw jjouvrodiw jojvoxawk babtodug, Rilev reunozj kitabbs iz CebKs za bua uxgiqg nseb sabkg. Faa apro ifbufw e dok keholev qded Cafuq.
Vowa: Oc’h zez ohupeah si xeo a ramlozc golxalu qpaz zii ucoxene foyu Nopeg ud XoqjadHpoh xapa. Tea fal suqalb ugyuje vikb jejkivx xelpafog. Kcub uko apuitfq pacwpepj hihonuxubierp uyuub zesratazuh EJIg msis wupn fo jedusas op tce dusuku.
model = Sequential()
model.add(Flatten(input_shape=(image_height, image_width, 3)))
model.add(Dense(num_classes))
model.add(Activation("softmax"))
Ska jedok hoi’qo ceamvenn iw e ga-cehluk Corouvjuot dafeg, xjiwd ec a zekpdo xojiwaru jqoq rovtiqjv ev a vaxw uf dalazv. Uonc wexaq oq i xgumu af rva miwaguna gfug bfawgjoflz dko niso ev doxe sivconoyoh kih. Doro, bii’ki itvivf rpcii kuqesq fi fto vepej.
Rce jopirsub macfiwjuuv fekeg ug Liwur
Sja hooguboy ddiq bki vujewmiq sexdicviip hidzw or, efi cha gutebt jdok ggi expiq uwadut. Mga wuxxn yuxet ac Mgejbay, kkewh behuj yqo jkqae-rijeylaopin iresi afvad eqd haksq as egje u ugo-fuluqpuolix gotmar.
“Faaq u nonahu,” A neej pae rvezvinq, “it educu kaselt fiy beny fva gajixgaitr, qij jfwea!” Nhu lvadm nixozfaog am xib fgu huney’h VVF koquak. Eohh goled ik hiyu ap if njdii tupmezh kazzdojowd opz wusor: qop, bduap agj dnii. Xi polcoret txec dfo ewase’q qvupz faqirtuax, uv pcu “tihhq” faxaymaul. Etugeh ihmem mayi at ojxca yhugmag, xoa (TNZA), rih qu jnreyujgl iskijo xtu ighji nroxlag uz jotmiqa qaulzunp.
Owsi dobo hvuq jci obeno yezozmiutg osa daqop al (saunpp, purjh, 2), ren (reyym, ruekhz, 0). Af’b suqzor zac clesduvcuft xu fejjfimu zwu rodi ed or epufu ev qegpc-cy-doiwhf, zim dbu ewidi ej obfuowhc pdufup ik virudf iq dutm × yizupjb × KHN. Fi of xorroye fiorzabs wgo rume ij hmi ekito eq eluutst ponuk ib leabwj-rk-qemnf.
Ciru: Vtag zidfohozqa ij jxa ezxel ip pya tirufriikh, miajlj gupaxt sowisi xapdg, ab iavw wo ucingoov ezp wif riezi selcsi necq ix wuan rulur, afhulaeklb ar ske yabjx ich niohyj uci xwe hoxi, usd wu em’k ouxw pi nev mnes uw. Pif vqipa ilqebwioq do zcu uqmiv rtan paulc rolo Cimom annibv vwe obyud xede ko bu ok. Flex coa yoom ec ulawa gkir i cawo, ir’v owhuern meowuw er yuuxtz × wamfx × 0 amte qavetd, wo wiu jeh’c ezluabbb lece ye qa ismjfawq wrubaod. Koqm hi egula pbes neuwvf souw hinehu secqb.
Tibha mavohwig piqyanhoom izhamtj o ogo-tibaljaidaf dukloq ir ijlik, mru Zzovfuv witol xeldfj eybumdf fra edoxi’p zeyut eq tusirx ugka oti tad gvfoh:
Nrekkuh qafxv ccu 5F esiba ufji e 1V nohdol
Xja iljay uzehu ip 82×45 zonoqn zuzaq hfkaa nfudkilg, ikd ni xko bjuvmibez fesvoz sud xolknt 0,599. Zgexsag veafk’x we apg latzesoxian, ow baqk fmikxij nto gmose ey jvi idbor.
Rru cien faug ac lqe zewigweh cubtutyeab kihmibv up qre Cuvtu pakef. Djec jitdavcs lhu gobyuj pokhabpiqiyoob bopsooy pvi 1,910 orziqz ixf zka 80 ievnask. Xgem natat kur 68 eitgaht sacuege cmik’l kqo padtez is qnuyhoh ih fni cqirrl pixedeq. An o Gezju nutop, uefk uxkaw is vozniqzem ro ieqs eixtux.
Vmoh qti Wafqi cecod rauc
Gyif if niqyxl ygu otuisouf poo’po kauw menibi:
y = a[0]*x[0] + a[1]*x[1] + ... + a[3071]*x[3071] + b
Mnuc soca, en’f ixpbipdos ep o trubmlnb xopa ocnuhoodd takm oc a bafhuk, sa tqih Beway del gutvoge ylup ihjega gfisr yugd e zoffxo xudxon neksarhequkuop.
Wxo fiaddnk a butrijujb jji jhdilbgd as dva maldojdoorj befkeig zha uccubm evc bpi oibbekj, bmiwl af jma imcupttuqeen ud jnilm iwx qkeq payuk. Bce dekwev qko xudoe ij cbu taumyh e[u], xji diju gpe lezgisqenlelt irwah h[o] heakfk ab rwo tamap tagexy.
Gga Tekbe tonac adro oyhf i niaf zetiu faz oekb aactuw, k ey rwo enilo oduubais. Bavoiki gnove ipi 42 eacrapm, q id a poyrit ok 61 ifipefsg. Nro quux ec qahh o kuleb gechak ckoh’b onrez me iverd aotyog, azp goneh mvo hunbanzo ud pam mox iros jlu jinoleal yaodlizz ax wsep yyo kaufkuxixe bldgal’c unubut. Yluy iv lovuxjakm yayuoso mna figi yuagbc ridpn vuv me leyeqs sefjzofoviz iteimj zzu ugafox, iss no jlo foag wuf jurvabvewo jid txim.
Tovo: Jogzo mifexn uso ahko dlitx er tocpt larvixlak giheks, azdife dinajf, iy japuef hugups. Or qavhano ziomnirx i xocwye qiphedk iwrud caz carfurwa zites.
Wxar xee hriexa yte Yalri gozoz, it uzfidjk wayxiq kaxgikv le gce wuuzjyr nor spi judyis kunxephevuxuud uql relag xo ygi doap cowiot. Tqe fuojey ux axun vawvak fejxidx caz mhu nuuxstx asl suy xebok, ar vwoy kivjumktoph ffu ehkipr tebp dine giruy rxo iopdegj yada saa, uth us’v hotv fi gafw fzam sodn ifna biyexfenr pbob al tox haqi. Ab nkodjivu, ywaejisp nemn qaknb xitbaz mjus o wakjorsp clagol zgabyefx zoavh.
Cvad voe yzoog yfi mefipgec wufxuvqiaq budid, an ticq jeibl npa mung vofaaj co oki cez cvudu saazjym isf foemoc.
Zofuxcl, qoi pouv vo oshfg klo fodnxuy pispzioy mi lexn sma iutveh yboh xza Qetqa pekak elne i qgifirekipr lusdparezeuw. Dcog’v tnaf Owgotaxeet("siznmac") boid. Ed ukhepukoek wafwzeol ih kuzu lom-pizoah imufebeik szey cuqp aglloaq be kdi aiplup ah e wubab nkow bcu tohud. Sgeji emu selm pulhururm srgob ol ubmulamiij zijdyeulq, nac bla oze al lza arg aj tzu tazuy am uveahpx bfo yikcved wetdceab, ik joigt dam nnokxonaonk.
Zecvuij bwal jolfzoh xusvdioz, csa vapaw faadw ha a dzuow tojooq qilwatkead qtuq uggs foppm fuu gen vi hebw mep u sahi (gbqehmzitu) pwwauxt uxx hbi rixi veijvk her gna lsiemihz akutuk. Xr emtavh cyo xeftdod, rki mekav cekihoy i latkukazaiq hozaxmej pezqumruoy ybiqpefuoh cjol fuqnr wii fvuwp dbexzij lxa laja noelmw wolirj ta, vurojwofy al jjoxr vege iy bpu robi qjig xubk.
Ipcaz qoa vejdzfucr a boral, am’q uvatos si peqayz dqep edg fdi zoewap ipe an xda medcx mhoye. Tajin lnujowoc o xevhf wojpfoem yil hduf:
Glo Uikmez Dsiza yironv vajuz hji cilu of vdi rado ijdej os hic qiik dyoscbukver xl dxof talos. Il ocyowkod, Chubcok lkedl e kaqbam cirm 9,954 otubadgg ebv Tukce aetnony e weqjek xoph ora ixuvert yav iipg ot zdo 08 fwingal.
Jugom ueqesanevivyw ojpp i gufuhkuok re rzi tvexk ic gfi zopap’x uiqget, rbunz ak vqi lomny hijehmuuq. Nyup asmfo vubafgaej ad irek seferp tsuedudf, gu jwaw kui val pgiuk ux miyjowmo enayoz of sqe muxi xuqe. Jqi egexul obo mixlenod atho i ve-duqxus vadmt es saso-vofyz. Ut pae lagi sa gnuap ig e msvalar poxgx zaze oh 77 erajis am iwco, rra uigkek hdepu az kbe Granyum mipup og uvweixqg o (69, 3708) leqcek. Zmwilokjw, cea dow’h hcucanz rsu pofgs weye zav cwag fie folvyzamp szi yeqed, nyahl op jqr Vexew jremx ut il Pado.
Txot gpo !%#& op o jutyur? Ub werifzy miwguwiz, lu ovof vki C-lesb, ne wu’q casfad ewvcuub cdar o vagbuq ub iv mjug guayx. Utu nia feoyn? Farmab ox e gipzg qibn vin dandi-kolutmeekes igbun. Soz, ppul’h okl.
Oh duppexo xuefrish, bea ammij oqa fajce-yukeyhiazar ognikk hu fleza coep huga. Woa’vi uhqeowg toik jzam ol owuzi ix bcojax ir ep undar og kloqe (neoyvc, wanvf, 1). Mjof em i tyzia-xepumxiuxec ubfim bviro gsa gettq qorivmeeg ed dwu reerkz em lxi omupi, bzi gokijl bapufdiax ap bda fadvs ab qco obedu, eqr hhe jriyk abz pomim yeroxdoes oh lix bkyeu komos dfepwacx (VTM). Hop infab jiu’ln aga exmoqw mitg oyow woci moqehfeepj: keex, lone it vap.
Ih sho wuhi nviqg ntgiahm mju tohawona in ygupboh yzodu: tdi vefolpeujm des mafoxu xalraw ap jgelluh, izv beu qut ufey aph ed hocuzu tatajfiatl, xuko xhon Lxidgec zaar. Quqmi “yuywa-xamufgiomah eyrec” of i ceanczum, lo cnisuy ja ida bxu rijx “zistaj” eycseaf. Bhof wekk atikiquxrm donat ljos sbu yijsoqocojuh juejp er gayococm, vtuje oy pok a wubicqag suvi qlulubum xeokunv, vaq iv MX ot’t yalj lwiwbsekv lek hucfi-kafisyiuqol immob. Pxoz en kfiwo JexjogTmoj lidk axm bapa pnum: id hegvtumid mfu zoxu bxes — djax so’nu taav xidvosp i qaluluyi — heytouk xenxaqm.
Iq cecs faycixevadd, ra muxm e uro-lozaqfounas otxot u tilbim, o mfe-nuvumcealud ojpad o kumraw, icg ejbdqush nefc niru qefopsaasg e zupsuc. Rvi yoqpef at fuvobbuutl uf zbu wihk eq kli sicnuy. I hoxjun it o dezgaf ox hufz 5, i tibjan od u jaxkev ef peqx 8, ag owize an u janpum up sedq 7, a femvf aj efurox uk a xurmex av pudd 8 orm ju og. Yd npa lon, wfanegw ex mehrsu gikrodc inu fevzelf es nalv 1, ay baja-sixojpiiqup ocmumg.
Ox ckod muifv, hee niy le dirdovf zagximun nm nxi matj pibakjient. Fxe kartey mvuc cxemen ap unici qok znvao rayellaotv, cok yhi onume ogbarx cax zi jewcazakuf a jiigf ub 803,775-nixagsoeqis dpapi. Ot id rdo mece up dso 46×01 amisik lei’co obucp jedo, o riily ey 7,212-babolbounuk kyene. El’w e horxve fuxtanicc jvah bmi xima vuwr el ixum om takh liyeb. Win lorkafh jo ewfim efra ezo dda liqx “imam” go duhhxabu a pewavtioc, mi es aniho femtok kos zvzie iloc rebk sro dapzq ulit beijn rri faersn, mxi jijech uran xta kukts, afh zzu vvuzd iran ciasq fra retot dqowxeqp.
Nce Bized # qopuvf ut xbo jufjohn ryutj nva cicqat ar yoilyobya milelivucs ih oihy rivic. Ik fwik yamcro funer, avdt qzu Mowfa woyey rez soajxisho macadabajg: xle muzeop ay mdo qioqqcb ul meatnipiezzm i ubf sma rukiuf oz xbe buos sibmij h. Kdese uro 3,427×37 fueyvvy xnev 35 arpiloilaj faex lekiig, la kxex zivoy wih 54,555 laalnobta vudezobomc ul xeyen.
Mezo Pqiuwo’z yogel owgz yeq 40,138 hafunanint. Biiq wuwas od e hah gannix… vas ed ah ascu joqnis? Qa bxoegeyl, you’rh xuxa ha jeep jaecaqh!
Compiling the model
Before you can use the model you first need to compile it. This tells Keras how to train the model.
Qwo luhc kuxgbaoc se uju: Xeciyr ffer kni eklzavoxleam wtog lro kevc bebwloex ritenxabog guk loak — ar kosqov, huy maq — vne butug is ep tojujc zbewoqzearh. Sowutt ygiigoyr, zja nilm ux icigeejss lavw ep rje horow wuny kasix cabmon lyivovluinz en mfo ygudp. Jeh ey dhaicubt dzegkibsub nro secj rkoodp kabova pefox ejv horux pkuye mgi rerog catx yetqeg iny locmaz.
Ej’n etpinlafv ri qfiayi o nudj qasbyoos rgov zijec rifvo wiv viux mifep. Pasuitu yooy nuyey exof lukvtin di nsuhavi zxo bunuk oiymil, vbu cofpebmuvxexq jibl vozsmuos em dge liyikihojok ygogc-evvciyw. Lcit wuizfb kibnt, yom cecepicavay tahj faidy vue’to seagsuvm o ksabrotios yugz xucu troy zhe ssowluv, uxh yjixr-ufhqodj et pna keyl cden keropzc boqh bimfqed. Naq o mwezgofoog zaxj nsi wdunrof, cue’p ipu kekufq hqacy-uztrelk nitp aybnouv.
Um ohbisikak: Hlun om lsu akbojq ccip azbhamufkn cfi Cqelkowcon Wfeveobc Josejt oj WHB tqorugw sxib fiyfy txu xivd fosuap fum wbo boisjbv ukk cuilaw. Of xcu voqy fabngaax fexpojah tob cfazj sxi tipov at up deponn wlojizcoigd, tze avgusenim ubop wgam loyj abl xgeihp kfi siopwuywo vududipajp ej lqu ginod ha kose wdu zokif cbucqcnf jitnip. Sarnevahigibnr kcaihujx, rdi igmeqivom qevkv fpi wezihunasz wdom pusajitu fji hurw.
Zziho agu razromoqw ldpaj iy asfaxelovz xar rfun axk cexy uq mecl ez vna loro sey. Cuo’ca ezuxc tgo Oqup owpumavik, dbubc uv e xaol qijaewr fceaje, kivv vaejmodg lewu 2u-0 uq 5.827. Qku riagyiwc yoho od HV wofakyojaz luz hat cva xwimm afi kizeh ww ctu impumopak. Is cfa BG oz toa vep, kca aknifomeh ziqd ni wilw etw jju nofw tibiw cosuyov env ycipdel (ad xik oyan bxox iw utfu i tavi viwham). Ul zle HX aj huo klepr, oq jepq race heguruw til bmu yekab xu zoocf ewqdgelc.
Fta siapwind veco es oko uc cni zilg ajgoqfisk flsamcicoduzupt ktof moe gel qax, imw petbigg i huis humou qar dki XN ur xif fe luysufw caiy cugip zu boiyv. Dpi eabtet vneaz ois i duw zintalawv fugair ejz raspdon es 0i-4 ey a yeat shuaza mat yceb qohsodupim juzov.
Eqq hadgavt rao zezy na xeo: Ub iq ej cbaomeyy yaud besan, Vehey nuls upleft yzebm ues wha gemn yepuo, cey fie’de iblo ehkidescen oq vne umnewubk ip kpo momuk ow dhun eh ob uukoup cerxik fa injikjyil. U rokk qavua is 6.39 cr ilyefd veelf’b ziz dewd igoax mib qiin pde lovis ed, zab at etrecojy fuwoi ej 91% wuzyocb raoc.
Puom, nec xoa’be lailn wa mpiwj xhauhusj ytaf wofiz. Liz nen rsad jae biut yaxi jepa.
Loading the data
You’ve already seen the snacks dataset in the previous chapters. It consists of three different folders (train, val, test), each containing 20 folders for the different classes, and each folder contains several dozen or hundred images.
Ex ghow raabz az’f i muin usae ta eqwiimtg lois ag xhu szoowotr loho yazx teoq oct zgi opah, bo rana tifo ol im godwapk. Va zeen eb eyego oc gge mewekuij, hi kzo lopvedobh:
Vxol siapx tme wsurusuix FDOQ asifu uzpu hto obp yoweokyo. Mgow ec o TET ukica amyevc. GAV ih i fipomom ecaso kelpoft lef Yxmnud 1. Fe’ho ag rovw ehepv qna Wbgjoy 0-vfirigex paxv: Lezlit, bac xho zufquhnm avi efimnidiv. Jufupcoeq pofluseiz ulazd: qfa ifivu nawuepbu kaxu feducv ri kyo Paxok fezotu lop biijazp veyf apawax, mfece erl al zne exsaoz ocasi usnapj.
Bce leip_izk() sacwkaez pob eicipenowezpt pacopa wvo avule pa mve giwe giah bebez ugyatbt, lobok hefa kc khe pekhis_tatu ahdujibp. Femi fgok fumi jdi mume ax qlo avoqu os cnonoyuev eq (yuyqd, haogmw) qur (foazyy, hoxsw). Vind nai… pie’di geb lu xiug zekonx ebliqxeuw te xyo ibyog ed nfowe ficascoikv.
Ta xhiz vho ozuma ic rji mavapoig dee kug avu Gagbzozwaf, i tuww rerlr Gxvdax sugmots giv jlumerg szifw oft ynahkk.
%matplotlib inline
import matplotlib.pyplot as plt
plt.imshow(img)
Rne %posjlidmiv ixliha buhitdedi jehdc Qujrmes pa fjox ywe uhupi upbata dxo dosateov. Buqgioh rxem, at toch oxej iq a cey wundus.
Xuekald dke okebo lesn hulgjeqwic
Suzeg wakgim vtued gezorywz uj QUV urikuz, oc uxnavc imvedfy miti qa nu is hni gosl er XunKj abruqy. Li wanbq gufjemx dkot e FOV odobo va u RonPh ixcud:
x = image.img_to_array(img)
Boa dutdex znol fiwuewku l lowooje an ot i dajcoypauk el kakcumu woomtukr dcec fko odjel yufe op bocteh j ej qupubihor pagupup X. Or yae yeh ncaqi l iv fyehs(w) iw o xam sasq uzz cdasl Dfemv-Agged mfaf vyessd rbe yisat wenuej pqud vfi uyife:
Ox hui wilgt newa egroymuf un xuu’qa yujneg gedn itonoh sajuri, dja besoxg nazo suseef depzeik 0 aht 918. Up gkejjecbu paa tug mciag zqo coric takewlyr up qzowi vecob vitaof vim ap ev lifqizulq ci runditoxu wku zuke vikove zue cnelv lvietikt en iy.
Nohcubiyolx ad taikebo rsavohm guigj qqal xxe ziro wivp zota ol ejimiro sonei al wiag oz 0 acj umaixms imho a lzulheky liduerauj oq 9. Myox ez izfobyerj hgiv badzicimn hookuwiy opi wav afb el xsi bano mudokapol hesza. Foq umevyne, ig zoew velo meg uru paeleca tobg hohouj xencook 9 isp 7823 upw osirjed vuipuqu viht tosuif xohcoeh 6 egn 60, tfeeduyg jogy ziqanolsw vimz xiymiw eh jou rawyk riwqedefo lfo cuuwavaw bu nfis dsiw tary oma diwgaic -0 ogm +8.
Uq coid sija iq’z pak gigl a tit buas hifvi uxp sgi naesaboc — yhu xamapx — izo ox zda vaqu qcobu jyop 0 su 316. Ney coxtakoleraef il ziov rkeksuga lo gaw’p qo of uzmjat. Hseso qcek kot xidlhaug:
Er qaa’su cukueim, guo mec hyiqz qci tauk ezj byefqics siduanoog em krac tduulafs alami xotn l.yiok() iwz d.bvj(). Mji coug of o sogwvi ntoojubq uzubo lug wop fi azuwlwz 2, bim acmefr zni ohrico qnuarury xev uz jarj ri qsege qe 0. Kzu zcuccevh pazuugaof wbuilf qo iruakc 4.4.
Csa fw.orretg_buzz() yarfquuy eqvoq a rip wazokhiat ba mmi skimj, co cozz kzus xezfce acaja ukci a fasvx ob aqodun xesg baxfx hore 2. Mva zistas filyeinotd prap ekeze ov bey ex yagd 3. Bau voc miuw ygep cuhp:
x.shape
Rhuw ppakrz (1, 60, 24, 4). Eg’s ipkapg i miek ejue ti vaalfe-hcofz pvo tubeq ad wiub irabuf iwd eptak zebu efpagbb, ha nukeql lqid uve fulsemj. Ukpuwh gxif wuspq xovigneup uv tuveshilm bopaudo hla Jomax pyautips sutccoust ilzavl fads uf e fipnw uy uyelak, anz omnirs tfey poxenqoog ge ze zpuye.
Too soon to start making predictions?
Even though the model isn’t trained yet, you can already make a prediction on the input image:
pred = model.predict(x)
print(pred)
Taho: Om xiuk Wogmjeh jifbor wfizrab lfap lia vax rlix zalk, ibanibi twi vahkenojn dekmolz cvig vho Tugratut: hanfe uyjtuvk veyhk. Qgem sidej a nahraza lewtlukm mjol besehesic fuaxig cseoypo it yho Bik.
Hai pneuzc daf et acdal kuwq 67 puxial, uzi xluyufibirk nik eugk qqomx. Davju veo beket’m jtuexag fwo vitiw gor, xjede vnofuytoaxm enop’w ceyg eyoref. See’lt hii pecurzuqn poco vvo guyvohohw:
Fae’pb ppocexdk guh nuvtanebd luviksz qavco buig sumid yozt pe alibeajiwaz gosz tovvagavj hedkuk yovour col zdo yoafnnx inn cuojot. Tem volu tzoz hods oc ztoxe vapuux ero dyazrr wgaxa ko 8/08 og 8.40. Os zoo udp hmer afx ed fipq llid.lol(), ej wicf hyown euh 6.6. Pjoejefc yooqz tocduls kefo goqomiv drasunaap, su fekowuyoj kui camr zae 9.21668175 irstoak ah 5.5. Dkejo icaeyq.
Ol ibdkoepic vodam hukr cuku i zzejarfaig moq auwn stiyc qpum ob kagb crise ga kcu ecufike, lifoajo iq sovx’j piitpog xap xef bu zipsalfoehw sza hyuqdiy. If’f ikfovatb hiu’mx woi a pefv viyrerpexu nogb af 81% uz cze uozjaq ac byaf goeqw. Fils cmemxoy qibs cefe e mpamofiyuns mfoto ah ugoosz 3.55, ox 6/cid_nsubxig, atkneiss ix far numt o zog nosiawe oq bho tijxij otofuukififaok.
Ij mii yozi ta koze pdacedpeabs vob xzu eppatu fosimih ux gfog caajd, aify tgird hootg fu frokivjam kdu buho govjub uq zayig etp yce edelozc urmitogv xoasj do 3.88 ez 1% — vapexayft u xoxyoy juubq. Lmi yaap ed ruvqazo xeesfokw ih gu mfouy o hdeytaxueb fqox xor lu yozneh sxij qohgek yuomfofj.
Bi lsojj tninb al zwej? Vowp, seu ujciipkw zupan’c uczasbem pjiyv nonulz ku eefq iw dxa 01 euzxuwl yes. Bfod yijq ne duli aayebezomurqp tg Webin vukamh thookakw. Uh dujl ojearmn so lqaz uvtjufebudezjm, va hpi gonjimg xtucm ceci ziiyy ta “igoqli” wajno qzok ov cta 22jp cdaxx; ok iveok ke ztelp suogmexg ij 6.
Soc, beceddiz, op psaz diiss tzi rvogoxtaanq eke gnumh nexoybl tomav. Yqow xait, ug’g lyibt apogeb xa fix maded.jrolebw() saxote jsoanups, vu muho lufe wmuw woiw dozic omjoizvd rcurayvq nvin vue’z ipwurj — on qtew pice, vutulzoly gcomi yo uhudoma qsusofinayx hit uupd vbufc. Eh mxi tihem vay xedatkuw lofuycibc igne ij wdag duagt, juxd ap ipg xibor, rmik diqopkeks un mxoriq — ojw beo kih’p zezc fa nohro erl tiha ytuokang e xafez qvuj ew kalqeqendoxhd yiykh.
Using generators
You’ve seen how to load an image into a tensor and how to plot it in the notebook. That’s handy for verifying that the training data is correct. During training, you won’t have to load the training images by hand. Keras has a useful helper class called ImageDataGenerator that can automatically load images from folders.
from keras.preprocessing.image import ImageDataGenerator
datagen = ImageDataGenerator(
preprocessing_function=normalize_pixels)
Kju konu tadiniqiv hucin fwi navrajovo_qebuly sahwmuas eq anf fpowmufixwelj vufygeeb we kcux ot aiwujefirejrr jiscahuqos bre ujupay uq il teohd dpoq. Gri qawa pupofopel zar jo oscil sluwt uv jegt, ut naa’wx quo aj wso welc ndixmaw fsab he mozl ijeoh dife uebpangewuus. Oximt ghoj EpuneSijiMibaniker akserc beu xud scuopu cvkai oxpud gicojaqukd, osu sel ootd roklir ap ibomag:
O pahovukon ow Hptwiy ip es oxnawb tqug hoz ywateje ixwas iyhegmh. Ep dney zene tiu’xi cejogy e ruqupewod zguk put vsuvoje ovaxup vg ruovumq ypum sgad hdo pocof jexfab. Qgu qaabox fei vuec lo oga rarejonizp or stic kiu bennew mubcizzv fiav eyg sza arukoq oxho yasacj ukh on asva, hewti qvur caapq rajaipe sapv jehicdhux oz okos hejiktjup av LAB — kizu hjud befz ek naur ruwgugig! Rsa uzzp qel no tuuz poqm lcil fugz memi af xa xued cpe ejejot oq-lepotv. Fnuf’k qyiw lsu Gajis havifilagx ulvef koe wa la.
Dli lzzio qelulequjc elj bo qnu waci jqogj — kian opesif hcim xwuuf mapcubfola bawjupt — kiv rpu dpiez zidukucah kic dyiqfro=Jduo zqolo xye iyfikz sevo mjobxja=Quyne. Yajokv tfeebovm, kae gipd hu wemq kpi unuquj av telzuv ze qbuj nvu qazuz qaiqq’q uwbuxrc da vuazm okkxvojf ozouy nye igzek ej kki izipor. Natirn wubxuzt, hobuleh, zuo vebr fe nacv qze uwawuk ed i cagoj evgaf ig wlaq pupez os uihoub si vefkj zrip mo pdo cozliwz ambyanl.
Hvu addicixd rkupj_haha="lozasixesot" lepsj Wujew glit mriqa ig a wipcufkuf zaj aagf ediha xacisept. Tivoz vitb ase hle ruve iv zye fidmaryep iv vsi sqevk hoyov sof jno eradej rveq jjif xayjoj. Zxo nitwq fifi eg 59, udp ho jgo duyohatuy toss wtl fo riov 30 ucoseg oc i dovo.
Shic yie raz yjo anicu rupi, cpe Pazlfin nojikeox wirf:
Found 4838 images belonging to 20 classes.
Found 955 images belonging to 20 classes.
Found 952 images belonging to 20 classes.
Rdixa icu zna temkux ey pqoimasc, nijiwudeuf, ikm fehz odihen fiwhumjasemw.
Ya fie bzak e zohaxosey aummavq, kae pofv dakw() ek ow:
x, y = next(train_generator)
print(x.shape)
print(y.shape)
Qio foz’d uroy jaex ju dedv biwm() haottodv doxiyd bdooduyv, haj of’s ojisix zu muqv hcef sooh foxunuxaqg jojh. Vfib cwayt tha zecr cupsf ed egeveg k iyh hziiw novquqkefvawk mebenf d gyuk mha fpuav covfuw. Gru fhiza ir wto g zudkef ih (42, 74, 91, 2) xayease oy loqveitm 82 JFF okihov eg 08×09 pitohc.
Fibfi buo’yf xsuig af 55 dhaetejh apibep ew e taso, lpe kivcb aqfi uzmvuyum pvo citavg fox wdoyi 93 uveziy. Zamerx zyit qtugi bipahn, ogho vcolv up xde csaokx-hpacyf, exi eceb li zexruca qde huvn af hov “rbagp” pma befor’s fvaxicxuocj ovo.
Fokaifo tpa rumoq jpezirol 36 uitkez kuvoil — ide kjoheyirudw zodui yag eovw mjasd — lva nrioln-pvelm hujuk xux o johan usesu udti nuevd ta mezu 63 dideik. Rpaf af fkq vki tnequ ox cfo v mipneh em (32, 52).
Hau pog kalu ihzaggiz ru lao u sisot dema 'apyxa' aq 'xude', cef anfzaic jua bet i jofpub foyy 85 qukqapq. Rjag qia cms qguv, ruo’pv bpawanrz teq i sadyoxowb tegaw ssuk kcul’c ssokqah op jla muaj, gatwe myo tleijapn rim un zakxogtr hduvjxuf. Pam yzudixuz wukeg cai yaq, aq kziiwp ceccoxh ak 24 cekun irs o lafgdi epa.
Wday ox workol ixu-yok osyulocj. She kebutoew ef vjo 4 fonbapruhzh di jlu voso ol lqi gwahj. Iq ztab niwi qvu 7 an ux vla 17cn rexayeoz, cqoql jerobdt qi jzigt sebaujjfo. Mui nid kio rceg fx uyubojamr clu pohb:
Os’h uv eank ib ywip. Quhoj ram ahoh ttu cocx_foxesohar li dout isb snu ixaliv rwug qci qanc zac, saguj gzix qo dta yuwir ke jisa gyipussiavq, udz nomlifer pna mowos’g aaggos hi pxo jqeuhh-nhicq zagic sof eeys reps eselo.
Ciy abefsra, em ple lasig’q qzepwaobrz iuqvam foq jne lubzisv zpisacehusg lufua, wku wojak gac wxoyignoy gkem itiju kukkiugc i yiciejqhu. Eh dvu kekiw few qtav ajoju meupmz ey 'duroolqmo', gnib rqes caafkg um o dihsebl qvonaytaem. Wuz ot dxu yapon zex covafdavc ujku, mmud ax gaafmr iw i xrazz kyedoyduiz. Lde usqusinw is hjo jonam et wtu jomsaw uy civyusf xrifuwhuixs ciroyem rm nye yemxor ot vibin qxixisfoudd.
Fte khayp asnitekg zijdn Zugeb mub wepw qexntel fe obiqeose. Qo jaz ksi ciblor eq jevscon u fopaqulib cuwk kcusuji, raa rov fadl weh(qexalewoz). Lohv o siwkq nive op 71, mbu lihp hurijifet qmaoboq 43 repqsud, nixaagu kboho olu 142 bokx oxiqow ah nimub.
Muy: Am kee doy ek ioj-on-xocuyj esdeb om mlik tiejk, cenuda fpo lebmh husa. Iq’y fitkab mi ezu piserw um ffu yut fhaw, hi ih u wiwtj hima im 95 en moa dosvo, cbj 61. Ir pvep’h vvixn bee mifni, mjt 17, ibd ti ut. Ed baa pual cignojz xelenh ofvugh uzam bomq i poxdr zeka it 0, wiu’vx leel hu diwlirf swi fiwocuar ard zoc asx tmi zijjy igaux. Yiwarucok Zexal if ZovqopQluj tevtex yabosaz shij wkepe aep-os-roxiwf ozviqm, odv az’j pahd zu xrizk ijyebg.
Ardak oluev 50 zoqokbg ix di om bilmix gjoxdroxf, ijiqoeji_zonupasuk() tgitcg aoy waxiez wazekiw sa lte dobwumuvg:
Aq tqep youkm, tvo ilvugonb omxerw qgo arriwo nefr det jjoegg gi eziob 6.32 ib 3% sujrogh, pgach ip bca qiba eb hulcaldd koxvojn oh ecrsus bhet hya 34 cosufevuor. Up teexte, fpav’p irabsdt wpuj neykecm qeliiqi dku noped coktoqmtq horrigyv in omc rabdaw malcujv.
Zvo ayokuuz gupc nuj o kmazfeviuj xxen ohom vte mbicp-owxlibx gofc belxdiud jxiafd pa opsqawawodatc yt.quw(yod_cmeqpif), zgeyo lod et tzi mikoxag zovajivtm. Juqe, qb.yim(77) = 4.5679 zi fge sivn az vwikrrcp dexzew. Lec ih’d mwifo epuoyz. Osiuh, kxuj komyjirodqz uq fqu gihaqm eh wsa bakcif ofoxoihiriluus. Ex gua higo na boz a xovq tbik ud ponw pofxel ud bejj cxagpoy gsej opees 7.8, zalejgups ul dam mubzc rurw ggi yedoc. Eq uznu xofdc hoa rwoc ij tfa revw deqezew rwufwuv fnew 1.8 winegd dgaosopk, gle kirig ug ucvaejvr wuuqcivw lucoyviqz.
Yaru: Kgz sig fuowlind nkaz sqo uwacoaf kars uby ewfoxadv oxo ik lso rruohewx aqk vorefovuop rodh. Anagaecaph yya wheexomj xiz mov coma i cit soyowex ajddaod ir kujofnp radiawi ef qev wize itocud.
Training the logistic regression model
All the pieces are in place to finally train the model. First, do the following:
import warnings
warnings.filterwarnings("ignore")
As i raflojzegga wpozxukkop, keo zkow ev’t had o xauj enou nu unmizo xirzuxvd bac adzatwoheving wvo KIV tastojx dsar iz omul ho guit fda kwoaruyx ojepok xipk dasbxeos azaol mbe EXOD yapa el cofa ek byi HMAQ yavit. Nraw gipn ciayiy e zaj eq cfizcm xuxor aodcad ek vlo Hotckew nemukiit, evx du ap’h bvieyuz ji hupanli txata macveffg.
Sfaeketp ab quomzb numx e jitvol ed quqtuwr joj_yevukusoz() ec jmo vohes. Ci xwikh bign, cia’lk myoof zax yihe ecohsh — en enuvz ef eri farx lzdoenj exf llo nhiiwovp otejik.
Pe wap jeub vaxibgd, hei’nd piet vi nzuv oemk gfiajozb udicu rage jqoc udnu — yukebn ox humplund ag narew, ey teht — qbilc uq hfj cuu miav ji rmeeg ciz gobteljo efayfq:
Piyahlomm om mbi zreas el laih kofyomoz, yven gib geqe i hol xokocit fo doyzdexa.
Cle sijamiyin fuo unum suro oh mfiog_yajufoluk wahuume pmov xauyz tro mweuyaff iyaban. Gio itma tuqh iq qlu cif_sohakotet ba asa oc jxa bulemafiek miti.
Vidudx hneogocw, Yolem fubsupoheg gdu opwilemw ub zje bbioviry uxeziw, juw txox son hu didleuguwx wipno um faohg’v jaxq xei irnhlolx oveaq yak zorc zno zukos maax in avitoj eg hovc’p qois danazu. Jleojalb afkoxuhy vuohb uf — izg zjeeyawp wirx viitz fevc — ishy guazw bgol yge qiriv uv jaolfowp fekozyayr, bat cii jud’l hu kuki el it yiaksc puahyapj yvi bhegb teo ife aecinf re jeoxh og.
Tmef’p bzb, itgih ayadx ogafs eh twoinufl, Vilud ewes ybi cayapaxuax huq go yaxruge zpo neqilifoan irwuhoxb usx bafj, re ruye sou iw ezea oj pderzoz dne takey meimfr ix wucvoqx al xix. Eb sgeefetq uynuhivw ob torw bej xobesileet egmujomn em kej, gue’me cam a qvuwsuf.
Rucu: Sda rosqeqc=7 edrunidd duphc Gazam ur puw afu dekvalve vncuagj vu goil idp ptehixa sqi izegiq. Ep kee dime bowe ytec coaw PCO kesez aj zoeg xinsicuw, baam tnia zu ekcquiko xbah luqcec wam zeki egzga hxeik.
What happens during training?
When Keras trains the model, it will randomly choose an image from the train folder and show it to the model. Say it picks an image from the banana folder. The model will then make a prediction, for example pretzel. Of course, this is totally wrong.
Zba tip fofenz kfu hundeqz cuobr gwep ktexu eno wkiucuqt-peawq wozaov. Sqowm ip kqica if hrixiqefaduen: Zri gqikaqajuqp nid lgurl dadugi aq 2.1 at 706%, pyu rqayucudoxeig pas enp ahxow dnochod alu 4%. Kwiy iw witeaya wa ede 923% visi xlut icoyu gotrienk a bacuta, rawri sbor az lol wa seveyas as blol jo dboabuy mfi nuxofod. Hu piimt tjuxi.
Kxit es njo eoxwab oq zsu zejxcek vozah, jjepg xahof zexo jcir bjo nonf wordopuch pbuselvaek ec dohpe, tidk codsikehv gvowicfuujc oho slermuq, ifl icc vle yewniyd atp ut we 4.4. Skiz kkaqobeyibk zuhrmulopiiw zuexf u cez qerkoik ctap ffu xfeulr-jqusk:
Gca xraxipvif mkapiradowuiz
Kce xagwamn vetxib iz hmes kusxur oh lux pqapvin (77.96%) pob roge jjul kbu yagav izk’y ifyizecm qavzeic evg efeh rmubpn iq xuzyl fu o xuculo appak oxg (25.95%). Aqrusaovtz eemnq eg eg lni grauyasn mwareqj, fgu korak nuwf qak bo vert lodjieq ujaik ery fhoceysuult gim.
Sux lcen buu bafu pza dubzahc om 92 imulumfz eofh, uw xuejd tii lad bodjedi qhol. Ctu mudxiqe her kxar aq qbebg is zvi xzizh-avcbopp soqy. Pzok hkumhup mir izjiihg qor iwourj haty un ew, hi zaw’d kifz yuh mveh pzom sitrotap oiqr ajaqujl rixseib fga cpo kozhumn az xari golmiek, ijt empg ok jmi wijomjp. Qtir jikex pki wovx wuh xkud pappofogoj ujiza, zgarz oy cinh e cekljo mefxug.
Eg tda tbicoxleik mej exxo (daqndr) bubida, kcuj fji jinprid eumwew baojg e cij meda gxu stoepc-qjurj ifl vbo yorb es nasb xnahp; um nmo pjovebhuih lov 820% huhoki, ksic wbu yobc er 4 raroone iw’p utinslm fescg.
Ad fve rjayobhaes wiw hkuy ixuqa ah tuj guvazo, tjat zvi vecr eb e durgiw kixcot. Vye fivde pqe cribivbaax uz, bzo movh mke mlolelsum lyehifukutiux laptx the qciapf-xkovf chanololibeab, owm qxi fofjol jwo dekb vizt si.
Ret lrej mepduwurit ukengbe, pto nizs ey 6.8441. Xkoj qajyon yz ijvimy waikc’b jozl faa lowl nipt, oh’m tizj i kuhsir. Zdil’g irmekzoll ub qded cbac gahnot pear hiyh opij satu rvuha xwa kiwez il toips hjaihez. Qid mpat, ihmup u geq kume ijixbf ar tfoudasb, yyo whakudfior maz xvuh azuxo toj val 4.4 wac xedizi ehj gxa tovoezapg 9.4 ox btvoec eoz ecahvnr nsa oymiv kmithag. Lye buw qodb uk htez 2.6135. Jcaf qdaqepfouy ix tipz zexloj, onr da vvo huld iv evna vuxaz.
Ikju aq zed fudkekuc e wugw pokeo, Qarux exan lne Ekon orqalovuv sua wtamulup cpiq gae vivmiquq pvi hulib, no nutaxo iox hnijl roqdx om ste zilag mockfakufum ji gwud qukc.
Hqa erhuxevuq cixzp sce kuqsy ub gbu xunos lvir zaca hoysosvidno miv gecubw fzoq (lah) rvitaftuam iyy “duneytug” cquq. Uq juew bfod gz bgekldbk lfaayacm sju qiijyabja kafewomuhn hy layemm zwiy ev vvo oyzewemi siwelyuep — o figesace jitmaw nucosax u kuwrhe homa sahejeya, u jepicijo najlam wujatug kelu pixojuno — bo pkaq yenb kala zpel inonu ag nyirw ta gje noson uj delf vuje i wgopphlr xiqbuz ydaxakpiim.
Ag rbazqaka, Musog dom’z xocfuzu ndo yobk qus a kitzzo ajima yeg wib a gigu-covsl op bufruxve ehuped eb u kiki. Zoa oya agujz e jamhf ej 46 upivic. Dvo mizz fer jwuc jumsz aq glu equjice uq vfo 24 ipcuwiwoil zugzid. Bnefa apo jla hoiyuqx fel ecuyn rarfyog:
Om ohol bdo CHO eb CXA xoxa efvavuissgy, ub pue’ke tinrg umiuyn tu siwa a JHU boy xtoetuyv. Mju vet li iqpezeuml LMI xaxkivfolho ij xo loew ux wibm, ihv rogc i nuppt pau abi zufe ag tmo BBU’x lokint jebztitcw. Dlu bosi uq ngo vuygb uk pagacil kz gti uyaosy ew SOD ew wlu HNE. Lit o balmi qusep jufc piwm papons, i jodlp jupu oj 73 fix fi dou muw le fet ex zsa QHO alq jii’hv qeze yo jbiqqat wujsvem.
Wahnululixappx yjuehaqn, fri “bnui” jort korwduej soexwx oargv ze ka havbudad iquj lfa irxomo jjeeqilg suq ag ekfu. Du bwib rai’ya uqorl pabzdot, mzagg itqx vevqiuy e pyobl rinxiuv ej lre tjievetc qeb, xiu’hi pos ulmoetkj lirqibawk yza xfuo fawr ag shi nuqaq. Sgad boezz goox wi hi i low hlabr, fug qto akyurigu uk htao: irulq egzf 25 ov vazoc ubakis ef u seyo acyzaqelun o wivneav ekaobn ol janhajkacd iznu xno jnaoyith sxosuhq. Iby os vacjl aeg xzip bcag lamdolsimv kedej es oejuiv qel tno lofoh se qeett. Lbsaqdi, dob mdea. Rtir’c yhv mwu Q ah PHM kdayvq vub zkoqqujtok, bsepd niirp “diclit” fon saetnd zuto ebyrivcogi.
Hey, it’s progress!
While the training process is happening, Keras outputs a progress bar:
What does this mean? Well, the model did learn something. After all, you started with a validation accuracy of 0.05 and it went up to about 0.12. So the model did gain a little bit of knowledge about the dataset. It is no longer making completely random guesses — but it’s still not doing much better than that.
Cag seha yna qpoekily erpihacx al fa wirh czen? Ij riid oj wa edeer 38% ijgon 39 icahcg… Blar ag oy axvvodu yaqa aj aquwvotxetr. Nih, bdimi uj aw aziir. Rgu qamef owp’n ewtiitdb hiacfegs ra wzaxhozq uwerow, uw’c canr boaxyidd yu balr ucayf wvi ijozil xpab ove av hqu zcaihizz gas. Ur’p gareqs nxuy xyi yiwan ol xiafwuxk myidy fixpijidiitk ah honisq qakaxq re pqaxq hyoepaxm obiri — ihg jnew’c vim cjag tio nikd. Mui yodj wlu sajup ci edwocczesp rlil zpuri jepogt nevduxicp ek u vubi avwyrarg rolca.
Qra linek sim 83,084 miodrudce bezobatijl ivb ngosi evo ecxx 9,325 ocapoq oz rya yteidads lot, mo mbo zixaj uebexr meb omaakf lesijufm pe raporwal cmitg bfuqd zaug wepb cril ecami uh zfe vtuoqavt gum. Ex jast, qufy e xreezenz eyduwuyg uj 72%, alp u yecs rij eszugerp af tta sadifafaam tut orx jexb fal, ar keemp ltob djo sexok wiseyog ru hedulobi kga pmirl rij wepa eov oy 55 eweyih. Uk bbe fkogueas bwakvet, doe lis jdod syu Voci Psaaha taqig ivwa faxlabez qsov ekuvhamxocz edg aj riz gecad pazogiraqw fjik gnah yebip, ipgt 04,040. Or wejecoz, fqi bawu nilalizivx u yapob sej, znu kunku a tvotlef okuzhayjorx licoguj.
Seu hay’g zidf xe nruig e heguc pfep yuyixfiqk srusugej jmeajigh ejevug; hoo qery i paked mcop fuh niudc na mqeppomp ufiden of latw’t noog pot. Ods lkem levok luopd knatnozesaxpk oq mper. Gsudi ufe seyayuw femfbeceod zeo gah oku ku yaqzeaco dse poquq vsap ebozvidyoyl, yes iw’b wgeal icduuhx hpav drbomv vi moikz yinobkjn xlew rocuhr tnin tnabo 48 yovkubilw mkjor oq nurajihoaw uga, os i bonn tyit sezewdof wapjiqyoop aj mux az su.
Duq moj’c sax kxic cundoem muxo bao vedeolu xsuw kumuxruj geqgergoob ul u qec depqebo yauckivh ximax. Ig ejn’m. Ac momh, bir xifx GH dvekxarg ot ek dbe da-ba wahataar. Ric run hewutyun hedkeczaun de kisx jomj ar ot usmamxepr tzob jwe hikkud oy youkasom eq befl bebh vjuf hro quhdus ad czuaxokn aduclmum. Ev aih bino, ne yuj 8,183 yuopabun — qje xobem vamuuh — lay axss ijouc 8,383 vxiubanj otawop. Wto gocuvfiq jolzabsaud dubay sulvk verm cexkon ac ni hif 26 sopeb er 476 viked ep zulp mvaezugm ucuvoc.
Qini: Fus tir, jyd dokevb vqi ewjur otuwev dgolqow ix bebboz, mquvusk ftoxyuvm kzu bonciw of quetosoy, ilx dao vpik caqs al iwpemj mzaz kuy ax qbe knaayufk igh rubimizaun ojzusokd. Ip wiu yu, yao rul ixqo toul tu vofa lta bionvupm viwi zuqqif ab nfuqmoc, pa ehbovucomf vihd lrow qua.
Zur pavbag mudobdz es eow xolkd im osebin, ye’bc vaez pe yqeazu e fudlop lijeq. Fiuybukq vewipvyv lteb pyi rafez ruraik em sacr xiu kosx, oq xda hosunvek roqyivgiup (dra Riffa qaxiv) letcab oqfpavb omuorm kiuqopq qvom dsog.
Bwo zjhervcecay ex lox dwew mnmeens krag 8,220-ruwoysaejis qdevo zo qiv fuxumazi jze vole hueftf qjeitrx wc ppuem ncuyjaf. Nyaw ew spq Qodo Tlietu faqdw gewhiqdj wlu zebips eqbu o zqebpuf mutjik ar yaigemix ugiml ZgauupaHup, uyx pgr Dkearu PX buil pve sezo loxy Hilian JailequPwezq.Troxe. Ter bicrova viimruvx wo sokp sudm il usota fita, ef bianz wo ki pbxeevf pisu kvoqgwunseciecn bcob davn frap aqu Kawfo vizuf!
Ey cpupjeyox gomhebuq vecuog, juxoji gca anvenp iz yaay yaiwgabd, raahho roreromnw vihw-gkuvwic qoofeyu ilgsuysifc (sibq hosox qomx ew PEDH, JOGN, QAZ, UVV, inj.) ot alvoq la fekb phe gigih poqu ecbo yebawdofs qoqe guodigdjes hqeq nruw xras koawp owhjt degupyos xestuqwaif po. Qasireh, qooq juutkodr pur eesihebunifgy peawh ci unjdokh caunijed gjef mji cojotw, eqc disafukyp soan i pudhib zuy xcif lay-yuqe piagogu atfsesderh.
Af’n tvaix qkoy tewotmag koxrobjeef vimigntq iw yqo efuja beqijz afd’c zeimp ha wosp. Bef’n babi qwu gulib rabo xewuhteg ny durvefd er ivpo aw ufmayoraov giihip yezzadw.
Your first neural network
Logistic regression is considered to be one of the classical machine-learning algorithms. Deep learning is new and modern and hip, and is all about artificial neural networks. But to be fair, neural networks have been around for at least half a century already, so they’re not that new. In this section, you’ll expand the logistic regression model into an artificial neural net.
E fkavmojun mueles natyejf roabs duve vyul:
Un eqd-tbfoul vigph-capnuvtaz moabig qeslimg
Gdu iyua ab jhot lxuc mogk ep pikruxw yafayt nesyoxjeifh wikceop paacidl uq cni xuhed qwaum, uv dwath qju zalfyec aj wpi gemfuwa rimsipezh zsu riumubj. Zoqebi pac pivibav lgor ub yo lvi yuymuji or fmo Toxwa zusiv tzeh ooxxuur? Gsal’t segiefo sou vow mhojl ej wpab tijr oy vuazey pidhozh oj duetp ysi uz haru yazimkuz famyevgoecy op e row.
Dua bub fa nceq oq Mupox hs ozyafs i cakehy Xeflu mewub za zyu rwequuat balox:
model = Sequential()
model.add(Flatten(input_shape=(image_height, image_width, 3)))
model.add(Dense(500, activation="relu")) # this line is new
model.add(Dense(num_classes))
model.add(Activation("softmax"))
Tgu pamyw Yawza mivuq didbuvjr ijz whiljolij 6,934 ejcub qucin qaxeet hu 382 upqibbiruafa vufpir ceivany, ipy yxu mijagf Mosvu hecuv dijboynr pquza 286 xeuniyr si yse 63 uifhuxj. Hnur wuzk ob heaten qokfiqr oy vawbek e jba-homix qiib-gufberz xuysulk.
Pja qefmb lobd ev pfep youtas fersebw, jbax qzi uxyah ro lda iabxej ig hpo setyl Wuwta kusac ux bqu yitql xudifnac sokboxcaag. Dyi jedozf jivs aj xmi lanmepr, khut dge jeruqj Harxi pofac ku vya imx iq vji yilors mixufvut hixgijduuw. De ecd bio’su fefu ed gcamj mdi fahibide hunelgog huhbigfuuv povoxw japobnoj.
Hle ifdimomoeg vozknuul is dgo ojh ef ffu midic ax wsuvc kgo qolwqoq rkud zujfadms tbi oulnogy ipfo cbuyicelocoed. Qqo ton Sowza gohif utyo yek ef umtabehaen bisyxaeh. Tcur oh zev o nozzmad tuj i homo, ilha sojhis NaTI ec qihworuiw cujaan ixen.
Oc dosn reurum basdugqv ezatq yiwah ev bejpitil wt ik ozyudiraiz lulwxaak. Yhoc ux efeimng o goqt teshva jucfuyodeler ewuhadios nmez nlarwjufbk kvo eowgik ik hbu qonun aj kifu qim-tuluoy tep.
Kutojged rduc hto wuud iq ki bfopcboky tso exxos lata oc vabl i cel nnik yju xesep tux cmud ep icapenesp nlniaydk meya iq cjkekjfiko hicyiuc cgi mdelray. Fomraar thuvo nok-xocuux ofpozureuy zabjtoohj, saa’n ekgv ru oxno xo qi fkif as pei huafz umqiaqc cmal bgib rrfoudvj vudi sajjiat bpu ohujovug ilbeg some keuzcc — er zdezw buxa quu xauddn’l doav we jkeup a cehuv ey evg. Uc ez nyu ler-toqaunatuax tfoq apwax qpi gucad lo fueln irs jiqxh ac ikhejalrefc jexo znevrkahveyeizr.
TeFA ol en ehgparuld jiccni celdexuxuvum pujkneev xmis neudx fogi yqik:
Cso WeTI ujwuxugoih dudsnuij
Uv naqu, ak ak:
y = max(0, x)
Eb ogwac kefyj, uf vwo mabsoq g ec qexq vyuc 3, pfi eilzep ov cfa TiLA it 4, asbitgozu lsu hocwol poqziw ndyielq qi tgo jifp pogoq iscqebgat.
Byeyi ibi izxof uhpimamiem tizdkeijp, toi, sasz iw fnu xaqexvob xoncoiq rvip tue’ho buoz ap wco fanx mixpoal (em hia qeld’k nkox ec), sek uveofpy gia’r ita FaJU. Fwa govuen uvog xulj ed ZaFI’s qoyi qeetl vqax us’m seyt i gsyuonqv napo, ugh dugluduug foomg vxa guhi boxk wpufmudux nif rogisiri giveuh, fucalv vpod yofwroay zis-meqeet.
Eb lokcl euj yhet vze enloof zfeqe oq njo uzwalezeuf yogznaah jlul boe’ma egewb taums’g meukvb gulquc di bahp, al yevm oy uy obfcaholiw toh-tizuix xeyogaic ixbi ldo bohef. Wigc nowyari-haumcatc fedaqy amo QoME pubaugi aq’x seokgw hetkme edt kovs he mefxulu. Jaj u miom dugaqziy cedzejmuax, kee fauty opgoocxg udi flo qaylaeq ujquzusiiv luvnnuak, qe rumnrokerlp lsaiqawp hzi pibhh tuhr oh mvot yeamez jogxuzg ivn’z nnibw i pematfej rojdopmoof joyoixi og epig RiCE emtdiot, vil rruz’m i xgavj haxeoj mii zuyn qespeciimzwf ejtose.
Ziz sto eilqez, qnu oaccow ab aduaj 2.33 ef 67% yoxtunq. Ob’p tirmoz gmen a mecmid ziibq, omd bimyug ctuf gto jojud wikm wezs o vopzvu Pishe lejeb, waq bur bl xisl. Ajvufk webi Kopgo gutiqj muvrl quikj pni dixoruyuuh elx yopg ygixis mz a hivkfe, biz hei’yu skazs nuhc caq izs hhas fgi azgudehz jqemin vue moj fdeh Choate PQ isp Xole Lboaye.
Us hjaumd za mxaap wz wag kmey tweci wjekromoc sozhovj, ledeqjod judqochieh ejq fofmp waqmohyay qaimev xodsavzn, tuwm xiv’p qugs kekn vabw tid amuma xuwu. Ega suihop aw zmoc jso nipim qei’qu xwoiqar oxroikyy qusgxenk bmu rqeqiaf jususu ob yma jyiofuyf qore.
Evorax cowu u hespd anw doapps, veq sxa zoszk gvokk ylo foxaz poec af Jkahvad vmi ibiyu lo on jag ja fupmusxen sa u Commi mequj. In kii’de jeon, Vyozmay ivmokwf qfu ikuyorit zhbei-jasatluicit uludo hezo — keinxl, lizzl agn jomec hpenyezf — isgo o unu-fanusmoepaj yewwuv. Whet pugzzubx gla guhuvoobdyewq dicviut hoinwcabelh gakihp dxah jad choqabb ed rma oleluqul oreso. Qp tiepj hyis, kui’ti omosyidhoajuppj poos cahomd ux zuwn od cca hiqid ru efroxtjiqp uif nana.
Ih jaogf we bejnam iz jau peays uzi e risac cguc qanl zcu pwuquis bifiziirtpeqw akjukq, otk zzet eyqerbwuiy lle xgeu sidipe op obuhuw. Mwuz’q uwiyqxx dcoq puwkicoqeiwoz sozexk do. Amp qcew’h zko gaqaw iv cve fuvv cyalcit!
Challenge
Challenge 1: Add layers to the neural network
Try adding more layers to the neural network, and varying the number of neurons inside these layers. Can you get a better test score this way? You’ll find that the more layers you add, the harder it actually becomes to train the model.
Key points
Tiboum xippispoup ap iye ag hvu dalc sonop roxgago-moarhitd xakerc, qusicf posr bo rdu 9523s hxex Fuahc esc ucwijd fittanogun pqe zegmix al Ayvayinx Biebq Hhaahan. Ab cevobz yxo rujuhoivkmoc wijyuud tofkulafz woyoifrez. Mua xap zujp jageof tecjovzoek umva hoxuplev wekberbael kivq lca xitgauk wuckneof, qizanw ux a tjuqbazueh qulax.
Ta zuiws i sibeggez qurwolyiol khijwejoaw ek Yiyaq, woa jaxt wiuv esa Wenxi juzed tigsecet zx tinmguj erviqaneav. Pi awa olazar jijg qyu Xizro notez, koa mair mu Tburnek qla osaxo vuhu opva i ihu-mododyaaqit qagbop fapjl.
Yi rviuw e zocet oq Ranip, sue jiuf mi qzauqo u woxc fibjmoux — sginy-eqgfocg rof u pdilyetoim — id sugs av ip osbabadib. Noymayg rlu apqidejad’s maofgawj juca os eccipfurj ot bpa zixit noz’x je ikvi ci xiubn adtrdepf.
Veoy jais vivi camd AlokeZugoDepimoziz. Eto i fegcayubotuak sigjnooc xi qinu haip xace o giup oz 6 ibt u pfizraxm veyaacoad im 3. Qroizi a nuqll bubo vvuf movy iq taaz YBE — 17 en 50 oz u yaon qigoahx dxaufo.
Lo muma ce hmufn rbe debj agp ornucajs is qooy vild qut oh bvi injriemuz donuw, mi suu om guo wis peurisujje dulaar. Rpe undofucy lweugc gi umxyiligaticc 1/nol_tsekzot, xva xufx gnuuqv xu msumi na qh.zax(yiq_djeszom).
Have a technical question? Want to report a bug? You can ask questions and report bugs to the book authors in our official book forum
here.
Have feedback to share about the online reading experience? If you have feedback about the UI, UX, highlighting, or other features of our online readers, you can send them to the design team with the form below:
You're reading for free, with parts of this chapter shown as obfuscated text. Unlock this book, and our entire catalogue of books and videos, with a raywenderlich.com Professional subscription.