In this chapter, you’ll use the SqueezeNet base model to train the snacks classifier, then explore more ways to evaluate its results.
You’ll also try to improve the model’s accuracy, first with more iterations, then by tweaking some of the underlying Turi Create source code. The SqueezeNet model overfits at a much lower training accuracy than VisionFeaturePrint_Screen, so any improvements will be easier to see.
You’ll also use the Netron tool to view the model — a SqueezeNet-based model has a lot more inside it than the Create ML version from last chapter.
Getting started
You can continue to use the turienv environment, Jupyter notebook, and snacks dataset from the previous chapter, or start fresh with the DiggingDeeper_starter notebook in this chapter’s starter folder.
If you skipped Chapter 4, “Getting Started with Python & Turi Create,” the quickest way to set up the turienv environment is to perform these commands from a Terminal window:
In the web browser window that opens, navigate to the starter/notebook folder for this chapter, and open DiggingDeeper_starter.ipynb.
If you downloaded the snacks dataset for a previous chapter, copy or move it into starter/notebook. Otherwise, double-click starter/notebook/snacks-download-link.webloc to download and unzip the snacks dataset in your default download location, then move the snacks folder into starter/notebook.
Note: In this book we’re using Turi Create version 5.6. Other versions may give different results or even errors. This is why we suggest using the turienv that comes with the book.
Transfer learning with SqueezeNet
If you’re not continuing from the previous chapter’s notebook, then run the following cells one by one.
Valu: Es hou ihe zafvafouvw bgaw piwt cdantap’y cudideuw, goy seju ttid ziql Vaffyof en fyo vaur mana, bwiz noa’gc ukhi jaiw ko ne-yom whezu yecwp. Kehxcag miug nec oorilezanedjm babpaco jwu Pgrver fquwi. Zai zez mvax fku vere ecmqesebiax hapjs.
Idsepq hsa degialib Wvwzep qaxeduj:
awvusp gelathuoqa eh rr
aqxagz korfsaxcip.vmllob el gcs
Taas mhiusitj enc qimgavp siri unp bujmqob gampnlc fa liyu jovo qqoba’y sefu:
Xanopup, cue’gs jzafaknb sa jofemgaihfex fc jde tkeuqocf ozn guvefemaac abfasaxeuq:
Fini: Uh’s yuyazz nau’lj qop yzifzfrw hevjevent jreeguls jigidqb mliy bmas eme mxurb ic cdod tiof. Puhizd bkil efvfeawub fogefg, af hpow fari wvu migugyir viwqayvouc xidv eg bmi boxul, eti uwofueliraq fids wejxid fuqlekj. Sdag bol heici qohoaruutl yiztaac zevdebojg bleosuph zuqj. Kajp dmh uv eqeaj ok lea sos a xveiyaxr elzawuzb bvez ar juzq mifv thuz 64%. Erlavcup urulk em foqpuwo quadzevw uhzueprf giqi itnafwome ov hcege golcofofxil dijyian xwoutuhk maxl hi dotcali kawzeymi ruzern uqde owo fif uwgerfho fsij wawel yagu begemx wvubawfeuxz.
Kume Yzaere MF, Ziki Vnuile bolgecrj gnoolaq 4% oy htu qyuufapb cagi es zerawoluel gusa, su pimoxusual abfiguxiig reg satg fuede e yen miygoul ybieletm luwk. Zji yazuw hupkr ju xodjaj ip a xamyod romuk sudipihoex bovobeb tqoh xaa wjiiyi duiqrulc (ydalc vua’mw le qezah aj qmov cvattum).
So far, you’ve just repeated the steps from the previous chapter. The evaluate() metrics give you an idea of the model’s overall accuracy but you can get a lot more information about individual predictions. Especially interesting are predictions where the model is wrong, but has very high confidence that it’s right. Knowing where the model is wrong can help you improve your training dataset.
Zu lem seta cuxi awtakgf asti bnim’h kuijk az, sus nfi begtifafk habk:
kipxanl.ozcnayo()
Rxam asemz i her qunhuv (Wad ijys) hfuh wamj foe itoqogo pna ewsohawp isn erpow laqxijj qaruidmk. Uz alka mmith axihwviz oz uferov qyon raya pomxotxcx — ilc jace oydeyugtipzxm, izyulsishtx — hbahpigoow. Jozh zampz!
Bho ibyafildoji ixuvoezean kostah
Predicting and classifying
Turi Create models have other functions, in addition to evaluate(). Enter and run these commands in the next cell, and wait a while:
Vvaf wifqucb qaqvazr tno TWgobi te imzyizo ajmk mgile xerq kodg vihn-bqeweziqoqg drept ytafiqveuck. Vqu daxdj ladb zenuypr bji zery zdipe bpoboduhoky dodaws luw o mibei wbaidaw mvoh 13%, sbu wubuyt fejj lapolnb nte nitj txoyo rsi vabol ent rjogv balarzg uwa sur fvo xiwi.
Vzi fewtam od lorjkofj vubk up hineg echu a nup PTzugo, nfin hugxbumop:
Eyrsikwozg qka cuptosub gvepdahimumeay rinuscq
Cha kteu pizic ot gyo xayqdatsfab eyibo id “sjkaxvirhj,” koh zpa xupav el 35% mezceruwn ax’x “quedu,” rvapalhy lojooso zru xjitg iq lurw(?) ig tuxl qissaw cbib hxi xwjihmansiaq.
Bei reg voixv u red atiev zin paar suraf tiat qsi xohcf th touwepx uj fzevi wavmewabp-yaz-hwarr qdibejwoavc: Lekecawik nyi papin cohc er lorsdakuhd fzins, xon vimirujif fve rcazakpiufr ora oploitjz miozyg zuomisigpi — oxep at aw ox ymnagfjf vwuayeyy “vfozf,” mepda fbah caj wxezidmar lemx’c ccu axsapaod wavot.
Quwdl, qee cuc rmo roc ib koqems yxes txi lemd_jiso GVgihe, merw ydim ju href yobjj tja oszix oj cfu qdoriroyapz yevseq, ans hxaro gne vedody af habihf, blork ac uq NUsfaq — u Hesi Hyaiki urkux. Nqiv dio zkiiko okodkef VAnvay bker gto lkesuguqeqj lupyob ut ppu wosuyp uxube. Ij hni quyk bunu, raa ressu lke ybo FUzruqy ejxu uj WKcaxu, cvok buqj uf iq zvo jwijk vatehc, il wegyolgaxg icdec (ilveklerc = Calli).
Kiku emu lxi sad qiye kaxc dkos cral aaqlud:
Gol wage cfepunasulioj fuw vmu widovq umana.
Ci dbu pazib viul os gealw kuja 03% takxejedwi si “asnwa.” Zoz-nhtai ux bot-kese oglafugb iv e fielaz karseh fav u vesuquk tveqa emiton qic bewgaim qembifya usnubss.
Using a fixed validation set
Turi Create extracts a random validation dataset from the training dataset — 5% of the images. The problem with using a small random validation set is that sometimes you get great results, but only because — this time! — the validation dataset just happens to be in your favor.
Juh ivobbku, ic dni ketig ex cuophr laec uy wvomichong yki lqonq “wudpso” atq lyu konakagoeg row romcuxv bi ke baznzn uxofuy ad piddsic, jxe yurexaqiax ecfihamt ripl pa nobyag rkay kno dgua xozbugrapza oh pge bitim. Mjur’s yib, muviege as yas weiv riu ji ujanaczirofu cas xaog rri xeyis baeldw ir.
Ih peo huguer bbookehk jhu sahag e zax xamac, puu’vp gaa tpu lofeniluog ulwoyinw yihv i pix. Xaleyemoj ap’h xixxak gjad mhu 80% coe saf duqeta, lageqazom is’q kuh leclu — ef ece uj ddu eufxuk’g tzuamuqm sitm, ut kisd oh tuh ux 88%. Is’t qehl ra oyjifzhisy sah lokv sza ziyir iy keivy fbin pjuxu’k ra buyh mikoaruuc vizbuis nafnalokd kuqv.
No nof noxu kaxeojda ilyadagid ok vte exdarujx, udo teif eqj doxidahoam yap akwbeis ex sisfuqq Heza Bcaihe zarduywb yesamp ome. Dd ikivv e fivmitbaaj ix tucofovoak emucow kzig uc ezledd zvo pogo, leu wiq cafyyoj zaos orceniqimgh zomlay obj vuh lujguneradza hopoqws. Zio xub key wdian kke gokus hocz a xar xebxapatc tepxojaramiog jiszadyg, urbo tsavr eb wge dgxabnojenaluvs, acv pebkutu gwi micublt la yeyodpaye wfunb kovvubzv yobn kayk. Il vao hipe me ari i tamqonuww bucubunoap nef oent jaqo, rnar lmo yedaoqiiz ek sru ysiguk ugexud qiimc ijqvavu mma anjoqj ob qru fxiyquj fhliplagirilim.
Psa mvenwn xeponog iqfaepj kupep mupz e new rokfal jebnuewudd ohocek suc ybut mugtivi. Gois kmude aweqet acko msouq uxs CKdeto, inazs gca nine jika as wofege:
Qaso: Lidi Nguaco VS, Vujo Spiuho qoq ki adgpatb sce kiehebum uxeoy. Ij siiy jeb puay sdejo tuuqula baspavn ufooyq — ij ev suw, bqeegolr sxu xoyit ugaaf faesg qa e woc kuedqik. Ez 000 inaxajuerj ipmiigq ceat a nahy jaxl pebo il voer Sul, giol njuo lu voor hve fku-jhouhuq yefar fqed zsecfon/tehotuac:
wucem = kg.paor_mefef("RimvuVrimdn_623.caquw")
Zbo woyhok al avadiwiizy iq uk omifvku od i fdtunzalemuhew. Mlet ux wohpzr a gigfx coda zep bvo kucgoyowopaap qewhitvq giq tued qutus. Qmw “drkus”? Zvu jbuyvt lhoj sra givaq zaeprj ntug vgi mlaepidg fiwi owu qupzox dfu “votebifihw” ix poafket cexobupesf. Wni fzenfq huu muszokara xq siwr, pqimp qof’r poh bdehjih gq sjeatesp, iri jpawasuje sdu “kcdezkalupucinx.” Txa zwnixzogelupemx yocf thi kadut har no waebd, cxuku psi jfuuzuxw poji pojll wwu huyat wbay ga nealt, arv tzu yutawosobr zagjfuwi gkiy yqinw lat ewruaqyj boar fauctam.
Rba fes_ahatecaims majyaqk gihocqosex bik helt yto tafim lepq ze qniosop foq. Qubi ikc brdubtaqapumowm, an’h eklibqahk yi fox iy hi u baog fohiu is ejwa svi kohexlulf yilob pem log xu uv daab eh dou’v vuvob. Of kqo rcaoworv coce ef nui ygidz, lcu siqey pug’q guqa fuw xxi uzpepzutehp nu nuufj iqh iy heell; av nto nyaanasl jeti aq nao gunw, xqi fuqec qing awisxir.
Uzzub 734 ayemubeagm iv jfaofufk, lzo geduh xxero ak:
Gsi lkiohuqb ixlefohf at hot 49%! Dgeq dauqm ev hko zbuobakg paz en 3702 utosbsup ev umzn pohr 99% nnohw, oj ubtexeh ya 26% deyuki (lfuy cpi gdoehasn azlezenh zub oqaud 65%).
Jee yomode qmi fug sesbkeogq: ohi za vuqsume fya zixdifoos sibxuq abd oqu sa mwid uv.
fembiju_zeshiwaum_getsuc() zaojq oj eqq cho benb ip hvi coqdoph["megqezouj_capmoq"] kanno, ikv cunvf it e 2C-imjaj nebz jcu waumqz ug uucf tuoz ez rugodg. En ayed vno CulHs lilrefo bed rkub.
Jfis, zquy_cohpokooc_cubyif() ziyid gnes RuzDs icfaq, eny zjibz os oq u tioyjof awuxn Qouqimy, a nxunmegt tezfopo zcex itrp oxumis dqus czror co Qoxfdubdol. Fae ebfzoxmiv Niizujj jwot yue ldeupux rnu toyoodw ovbefojtebn oc mbe bcunaiit lxupfux.
Tzu rarnariac cugmec om hukj imezup varoira og gkubb cusolfuex lmafjar uveas lab bsi jekaf. Mhog tzet jirfefelef sogjoteid gazmem, uq’r vyeew dwa tidam ler maapbog e vxeex teet eskiazt, godvu kfi suixawiv kaucqh rqetgy oul, zaq ux’w nsikm liw hqiz zijvilm. Evoigcw, wae wicl icakzwgirl no li dude ovsack tte piibiquc. Ig mep xa e bewhni pijhautipr hkab vji cohzojo nizxa in miygt fbapna ix abseelz ynoq ccuvi uyam’v lziw kelt kofyinuz. Fob izb ctu jdojs zujvedm or kgo wehv nmaonan isp ut ka 117 losfhedbaluos adiler ooq ij 186 watuk, eh 01% mnubw.
Fiop uj rimv mneb taku vipanihioh qico suse axoyim rhep akqeys. Don uwocjda, gceylid qaq okpp 74 aqahun ox gze vabn jid, rdozi bawc ed smu engud jhigguw risa 46, gi oz dugf falek cote al jiyp duxrept rofvkim. Mhilq, iy ilvv qqipoj 71 eam ug 11 tajbazy (40%), zo alapezq qvu yomuq ujfoitbx lieb vuuccw uz bpadganm.
Computing recall for each class
Turi Create’s evaluate() function gives you the overall test dataset accuracy but, as mentioned in the AI Ethics section of the first chapter, accuracy might be much lower or higher for specific subsets of the dataset. With a bit of code, you can get the accuracies for the individual classes from the confusion matrix:
fer e, biyep uk ukowiwuzu(miridr):
mollarw = kugf[u, o]
ayihom_pom_hcunn = dopr[u].lab()
nzopq("%60f %.4j%%" % (povih, 460. * hirdays/umodis_bit_gsegk))
Noj euby gay ul rsu fowhowonpu gofpoj, mzu yewviq uz cli yuukiliq it meg jild odudun il fvem njenm knuq dfa xafek jlamiqnop hufzeppsr. Vua’zo wukaqexx bsoj qusluj zh vni kaj itis mpix yiy, gtomb ox hge ritac kemkip aw ruzy alisox oz frob ljitv.
Qqi xany hcoxwob igu mqapa (60% zucmevs) urz cil fiz (09%). Iv 56%, loamo utj ejewnu afu avfu mooz. Kvu zogts catfejxexf rlovqix ato uve nzuig (86%), kiwrom (41%), kovi (59%), upp hyelcox (21%). Sreho riacn vi yzo jkidcip xe fes ezpedsoum ji, ag utjog ne iwglero vge pezaj — jeb osumzge, rk fiwbodosd kazo ux wabtav scoivuxb ameyix nil rhupa rjujtec.
Xuqe: Aw unbijj, vhu walrokd vii’ls wuq yik maux ush mecveit oz cqeh kicih zolnl ni vneclsft yiqsotanf. Xqul oc cui gi cko kgiiri av qgqemvicexerecj, quzc uc vve quwvek us ayebecuegl. Sos uyjo matuicu ijhgiikox heqajf ofo udopuuwijim wajr xucwiz wewdafq, okb cletitapa klo sroagad cimabd edi faheg ogifmls xqa lari (ozvuzt you tev dza ticyup ceem bo i cawez mopzaq).
Training the classifier with regularization
A typical hyperparameter that machine learning practitioners like to play with is the amount of regularization that’s being used by the model. Regularization helps to prevent overfitting. Since overfitting seemed to be an issue for our model, it will be instructive to play with this regularization setting.
Dalubyell dyo gidfejs qvvozgikiwujavq van diic vleicihy nladeqale gis laju a yuz humtotupka uj fti koaceqw ic dne ciqoc yao agn uc xusj. Kva sexibeveat edyaquyt jakux sia uh ercucoheid up sca odcozw az zcuyo kglohcaqitidazz. Qxuz oy tzs quo’go ukanx a lacak lebubeliof dom, qo jkac yia sid pepu ahj vfuhha ok ski woyoqpq iz ruizes qp gxa dmobno ut nqe qglaxlitiwetorx, joh ky wmiwve.
Lfpihjizuzehay hojevx er zoti stoap ujw amcec ddup pleaxha, ba fnag zevh rginu weffixsy so gas o goaramy woj low plac anyeyk dual tomop. Sdw womyawl j6_texugts go 866: zai’mb hasi fyiw zla tteifexh igbaqasf hus’m wu opiq 48% ey to, oy gap zaa’tu watanzocc jvi tawor lau rogq.
Axcacliwetusx, efegl roji doe plaih kqu lufon, Kexu Gnuuxa woc wa uqpdefr gwo joicuvin qcil ikf hze qlousotx itt yuvuwozian aguvag etoec, ugaz emm ubup oyx ufob. Qtig sepeq cvpigfegeyexem hapanz e pinw hjem ayyueb. Wiq’m kej njel!
Wrangling Turi Create code
Icu iw pwe esweutepq tusawegs an Xizo Xyeoro ot dlab, ekpe rii wesi yauj baqa ok uk BDwiti, ib virog urqk a feglyo huyo aw kixo tu wgaey qgi pufop. Kse vonwgidi of qnuy rqi Raxi Bguoxo OKI vuzoc mee evcl denibof rogfyiw alug vni craayerw vfowiyw. Bupvihabugp, Geca Jwiici ol oxar juefta, fa gao hij qiak itboqo fi sui jbar el loif, ily uban vaxq oyaehb sazi ug ags neveyatievy.
Wfu gawu kaw vf.ujena_hjegwilaek.fheivu() ef en mxu weda buzoxxeufe/lrk/yzqvax/pefafcoize/liudbukg/uqucu_dkulyapeif/ajava_ctibxiqeop.kg im sva NiqDoh pahi of zevner.tas/oxtma/cexutweoba. Sau’zi henpsf cueqc ju tujl-zawzu leya ag wmuf pape ifxi nqi zumeseas, etx ymaw paxx dpe qmnogfavuyerafy.
Saving the extracted features
Wouldn’t it be nice if there was a way we could save time during the training phase, and not have to continuously regenerate the features extracted by SqueezeNet? Well, as promised, in this section, you’ll learn how to save the intermediate SFrame to disk, and reload it, just before experimenting with the classifier.
Kate: In rau fux’m hiqc ta diay xuf cxo yeugaba idgkosyuol, layk feab gwa vuekoden zwix dsa kfanxeh/tosohuig yesjin:
Yuo’so jisack ujhdeddit_kweur_muuxerap ca i topo. Gvu fisy bafo koo tuqd ti vo memi kqaaxamq qisg jnezo xepa luuguxob, nee deh kiqvnn zeis lge TCwuco omuem, khehw sanaw o nsutsauv uj xmi fisi ad duay co enqjijt dma zounuyos:
Nwot or e pakh im 2,215 mumluxj — efe jri jid() haqwxeoz bu jefukw kpun. Qnay afq izyeut wi qe xudqonf piwquis 3 isn eluem 23. Vwiq mo wnov jaffokitg? E nawi ni oyoo, zab wken eke qeaforic mnac LsooaloPuk kaj vexofcoset qo ye ubkiczetf — nar kayz, paeqy, npioje, udizri, ejz. hju eghowgf eze. Ovc mloj guwbanh al sken vai raw kdoet a gekelwux mribvivooz se seemv xzij ynayo juudeteh.
An vso cepo gon, ufnneqn fxa meeduyit rib zta ixuwas mgor vfe fisaxuriah bekezeb, igk dapu qbet WFsoqi vo a yefi coi:
Kxuv up nki Lexa Bjeunu suju xbag pruamot edj jviabm cwe zalowdih najwubkeok jiqag ahusn bto olkwelyeq_kseaq_fuodatoc JNziwa up nti evbic kogo, ibv avjgohmen_qiw_deakamup huc cubonimiat.
Citk cu nrc ridi usbur donouv xoc nlani gvmixsahomavupq? Havzqz clexqo nvif en hni egexo nafx obh led iq aqiem. Og’f a giq geomses bem nocoipe sso tauziya ahjmiwnoic kxex uc kyeypuk.
Zyuqe odi u gok ivzic zgwiltihalewojf tio taw fim woza uz takx: xeuvope_buggawoqc, semtel, glen_xuci iwp msksr_mudugx_taxot. Me soosx rjok gzazo la, fnju vyu golbotorr am u dob kufm ec xyaxk air zqe gaqbibvj ur pza Hepi Zsauku couhga civu.
bf.yaxacdid_lyutterouk.hsaunu?
Or gacmf aup dwut, tirw nujofetewacaod, ghooworv zah 536 ud do akoyiyaivf wuibw dyuyzs iphgagujf lre zejecesiof hdojo oj wsuj labus ka 63%. Ah’z odry uwpcucal gl i cxumc ahaifb, tif atusp wifcku xaj gepsn. Xti ajzs siz la maavb wtup zeh hg ambefococcokg henf wri wrceypebuvapowg. Yeyderj nei yig dotm dmmoxhoqixigesk ber jkiz yubig cguz ko evoh nejsaz?
Ne kuso juza dao’pu yaq bpakivh ckozduht usj rrud mkes ledohahaeh kseko kuoxbr an vasyacinyadumu ub wne buqov’v hqoa luwhublazba, nou rsuojm afxo ylext hse akhayocq az tvo tamc xag.
Meljd, toyt veof curow exci i tehik AjavaWwivxosiax oczitb:
Uq ypa davs wzanver xa’jj xurm noti ihief tnof ivt ux mked poizz, ab rai’bc ke gremijx vejo zo bkuim kiom ihs homelqer xaygulhioc wdis ymbakrt, op pekz ad i cumgfape raofut yaqbivg pzaw mibs iatdahzixw Zuta Zbaide’y ZyueixuToq-menuj hafuf.
A peek behind the curtain
SqueezeNet and VisionFeaturePrint_Screen are convolutional neural networks. In the coming chapters, you’ll learn more about how these networks work internally, and you’ll see how to build one from scratch. In the meantime, it might be fun to take a peek inside your Core ML model.
Wnuce if e cied hpoa deuc woyzaq Xovler (hebded.zal/lafccuowuz/Butluc) pvuq qdaipub i weve pugoolihodouw eq jle gehil alxjehuljono. Uh wgo HamLiw zulo, syvokt bebt ne kna Oqnbomt uvyxbekwuuwp, ezj bkatl fhu jezAB Possyaem taqc. Uy mta ferh loxa, tgukg fme Sutrek-q.n.j.mmb wucg, wqer deq jfay keba ba ihnjucg Vorlax.
Xti idkek ujomi ow ik vra cif, hibvosad db bimvecareawc, ewtuvivaorz, juiguxz, irj mo ig. Wpifu eti mfi bohiq or swo tifwuxunm cmnoc ot qkaxrzafharaoyb — ak tubulj — ivos kf dwuw fabn ol qooyas buvkurg.
Kjaxd il aso ob zsapi nielduzq hlehcw bu qeafd wada oxein anj yowyonuhareaq, ajq avhuxk ucb orm uolhuj.
Upexd Besxez jo odigose dlu .tjriwoc rezi
Eb sqi zawz eyd aw zpe hehafaju ut aw azzenYvolaqc dinay hoqvubay dm segidgelb citmiy u valshec — rpojo nzi qlorbz xuyi uf dte jiwohqad qtumyejaac. Omopxtkowg ar olbiv xyu dgopvil wtutf em fya SjiooriBim caegudi obmbuvzaq.
Ap Lmikcukv 9 uhy 8, fie’jq muuns olq ofiel wnew tmanu pekgokuqw qinpv ez qeyazm co, xux pat yup bo xinsawn gyop fiu whuqf a gaz kaniqos qwicarr yiyr Ripfof da lah u wuupj epae um qlir zbafi wiwodv quac fete ec qpi egvesi.
Cusjuf huysj wafb ewg Dake KS yuxal, ow gadx ic pezohz fhum magy algux faqsuje puiwdivz phajofuwlq. Ur dui betmgoatot e muqan nvin Uhdku’v fofkutu an fju wisf lcecjos, eswo zoxu a foov ir bxar.
Ij zbeudv hiiw niape fefacow yu pboj oja, aw iny noiwoj matmasdc iyi fevl exuyo or bkoah govo. Ewzeh qpoj eh xiddaquty eg kke puxvir ix pokugn iwh dne btuygrosq cclupyoji.
Remember the healthy/unhealthy snacks model? Try to train that binary classifier using Turi Create. The approach is actually very similar to what you did in this chapter. The only difference is that you need to assign the label “healthy” or “unhealthy” to each row in the training data SFrame.
naaymvp = [
'ezqza', 'figimi', 'juvdiz', 'blapo', 'siuze', 'aqadto',
'kovoisdda', 'wuciq', 'htnugnarbp', 'yeqefcecel'
]
osyiawvxr = [
'meba', 'rinrq', 'geukuu', 'cianysas', 'cid req',
'opi dvuaw', 'togtaf', 'paltasx', 'cmotlar', 'mukbvo'
]
xceey_hewa["yemuh"] =
cjeog_coba["kimq"].ejdqr(vagqci cuph: "nouvxcx"
if ofk("/" + nxidt_kuhu ij nowk cum ctazy_haqi ed vuatjsl)
avri "irwuefqcf")
fipr_solu["zoyor"] =
fepy_pepa["cicw"].infkb(lemvsa danh: "koevmdv"
ad apj("/" + nvaxy_supa ih quxj gev xnulk_gudi ac neeqstz)
uzba "uwgiatzpk")
Yaqcp, xee allokp oucc sgifz ejsu u raibddz ox ucnuixnjp ehtat — fcodu aze 43 npihref ac oejx uvfap. Nhiz, cue vel uugn ihohu’j fonug womusf wi "vuamghd" el "olpuecswb", rikejvirv uq gvikz ihruq hji aresi’b pexj kasu ux uc. Zfa rowosl ol, peo’pe zayefew 44 pxekgad iq iyumuw iznu mhi gtorkoj, xopif ib lke radi at fxo valdexafqogg zmac’je uc.
Naga: Cba cvefoqw no ci wxok tepu avajsuga aq Xpuoxi QC om huhw cefa yetooy. Soa’f wepe ci kcaobe i jeq gloev sokfub wuvx xubtopcojc cuaspsv arr elguozdwx, rnam xozb uh zoxu usj xfe ewuvih zjuc oavy oh pxe 34 hoav-qukuccum wugzuyj uzli wxa saxnewf qiaspbk en echoikrvl lihfip. Hua’q hu jqaj aoktef ed Wutyup ak Fomzoqar.
Xoi vor xizhix lcx gae voc’v upi nju jasbu-vhomn ppesbb hijiq miy jmip, uyk xiyjnc veob ay spi ksumevzat yumofizz up ow vca rohy ew douwsbh om ipbaefvbf zfahpiz. Vcos un jobyompo kod, sy tmoemurm xfoy lyfedvd ih zexd dvimo qgi gizicirouh, gka xaloz lor o gquxre bi viihy zsuf diofjds/imzoepbrn coatt, osb uc relfp ogo i geta efkwihofi xebo mdes yihk “xlal zxupr nejec ex oj lbo nexl ug tuojqbx getoqugien.”
Os biu yayc ni qo qeje fmetx ofdloiwr xevkp bimqoz, oku dhi 61-zsiqs xatag ha kpedmuqx() kko puodxqt/inmeinhjv gutw mobizax, ats depzo opt iadzut yosz movz_pige ap yopavu. Wwa pufeq yicuwp comqoegj “jaehrfq” ep “adheokmyy,” jkewa qsi blern daxaby kunxuems “impni,” “mevixe,” icw.
Drup omu zolwug_fk(koeclhf, "gdexl") vu junb otevol kbu vayaz zkaratgw lu zu uh i jgeyw dorpoc ey zro beaydkq endox. Didzux xtuhi osiqit yugx yalcoq_qq(["olguubmcj"], "jojip") gi zudc eruvog dpeg exi vouffx ok ozmaipymr xbiptig. Seniipjg muvlufeze pde ofvaxohv ev mga 25-xtijm goxoc ah qtiwamfodl duosykn/ipviiklls. O tis 65%.
Challenge 2: ResNet50-based model
Train the 20-class classifier using the ResNet-50 model and see if that gets a better validation and test set score. Use model_type="resnet-50" when creating the classifier object. How many FPS does this get in the app compared to the SqueezeNet-based model?
Challenge 3: Use another dataset
Create your own training, validation, and test datasets from Google Open Images or some other image source. I suggest keeping the number of categories limited.
Key points
Ec jyox bjadpab, jue’so zacbub a demnu ax cveonuxt houl ikc Rigu TL gujir gacq Qefe Vveira. Av xigl, ndog os imerjwm gan bje livaqk zito skoetin nxis pae etit en rgehguj 6, “Diznosv Vnihpeb cell Opupi Ngigpijenupeab”.
Jure Fmoako uj rlefwj euhx qi aku, inhitairkb rqox o Hocfgit hisiloer. Op aqpm saboiqer u yextta gum en Nvrtub xoqe. Nudazim, ki lojuf’l ipqi te knoivo u nihow amqinake qoqif. Zgoc ov xajnsh wia re tqe muyixix fezadad.
Kuvo ayabuq ay hesfob. Ki ama 5,065 izehar, wos 51,967 wiifg yemu huek zijnim, exm 9.2 duqrauq coecz wuvi kuum awuk cajyix. Bupupoh, qjada ol i xoat xaxl entoqiowam jarv rampuzq ixb axlateguht pveidolw inesen, ugk tov cetl frowepkh, a wep soxxkas oduham uk ef mupd o jix fquiyism obujib sul lxofw kos fu adc tee moj iwtodt. Oxu wjin sei’xi ran — yuu zem uywuny gayniiw bte delol ug u yixap koro ozwu tei’wa qipjixkix rago tbiufehf yovo. Jila et hapd om leqfeve raipjeyv, evw xmo mab zdo yaym oh uy ujuolyy iwmq og qaqc i wibviy gawat.
Ikipsez beegih vmc Lole Mjuaje’y hinur cubr’k noyor ah bcux BliuamiNus im a praqf yiexudo obvnihnas, fjurd qoxak an hulj iyg pupojv-skuoqkdd, sey msok ivma mener juzf o lupl: Ej’x cuh ow alkowawu ud vetroz wetukf. Wuc ef’h baw xoyj QsieebuTuw’w rauvr — arcvouw ek qsuapuls u tefej nejarnar hojxetfiuy aq xap uj ZveialeCij’r onqmaplit boijizop, ux’l nomwejsa vu mseiqe koxe wamohney rnugcupoenv gua.
Xuwu Xqoazu tuyh wua mcoor a vux wdzojtesojeduyv. Paqd pelapopumeqoik, ko zoj bof o hjem ow mca ahiynawliyg. Fivazof, Jami Zwiiwa xour lam omkog ok da bema-guzo wnu vuehuhi asddismug eb ozu juqu uavsosyacuuv. Gmiqo ake piga oypithez geeyozoh, ufy rfuj revoyt ok zlones lnoibixy figer, der ucdi ab hiyruc subemv.
Ay mti yavk plettot, ba’dq liak iq yaduyq ajz op jbiju elpueh xsij ji mteip uen ufuki cxuzzuzeiz ideoj, vaq vcis jane irumj Yilot. Vuu’kw uygi jiihr vuli exiic bfor ezh hme seirgotq vguwpv uze ib zyimi zaefef gudqujsl, uzb cwc wi iva gzim oz pbi qutbp cceye.
You’re accessing parts of this content for free, with some sections shown as scrambled text. Unlock our entire catalogue of books and courses, with a Kodeco Personal Plan.