The previous chapter showed you how to use Apple’s Natural Language framework to perform some useful NLP tasks. But Apple only covers the basics — there are many other things you might like to do with natural language. For example, you might answer questions, summarize documents or translate between languages.
In this chapter, you’ll learn about a versatile network architecture called a sequence-to-sequence (seq2seq) model. You’ll add one to the SMDB app you already built, using it to translate movie reviews from Spanish to English, but the same network design has been used for many types of problems, from question answering to generating image captions. Don’t worry if you didn’t already make SMDB — we provide a starter project if you need it. But you can forget about Xcode for a while — seq2seq models require a lower-level framework, so you’ll work with Python and Keras for most of this chapter.
Getting started
Some of the Keras code in this project was initially based on the example found in the file examples/lstm_seq2seq.py inside the Keras GitHub repository github.com/keras-team/keras. This chapter makes stylistic modifications, explains and expands on the code, and shows how to convert the models you build to Core ML and use them in an app.
In order to go through this and the next chapter, you’ll need access to a Python environment with keras, coremltools and various other packages installed. To ensure you have everything installed, create a new environment using either nlpenv-mac.yml or nlpenv-linux.yml, which you’ll find in projects/notebooks. If you have access to an Nvidia GPU, then uncomment the tensorflow-gpu line in the .yml file to greatly increase training speed.
Later instructions assume you have this environment and it’s named nlpenv. If you are unsure how to create an environment from that file, go back over Chapter 4, “Getting Started with Python & Turi Create.”
Once you’ve got your nlpenv environment ready to go, continue reading to get started learning about sequence-to-sequence models.
The sequence-to-sequence model
Inside the chapter resources, you’ll find a text file named spa.txt in projects/notebooks/data/. This file comes originally from manythings.org at http://www.manythings.org/anki/, which provides sentence pairs for many different languages. These pairs were culled from an even larger dataset provided by the Tatoeba Project at www.tatoeba.org.
Yhi kuda wosxiody gabuc lfim hoet jabo sxey:
Bju tezdg cuquy lanow ap slo.rwt
Eavx bavi qek oh Ankjulj zakpeynu — zmej oyok’w umj ayu-sikn yoqb vilu id vye ayowe — nucjatip ds apa heszajbo Kmivasg fjayldeceah uf ltoh satqilci. Ria’ve kiarz te iwu rtib gane ce pvood o fiinow waxputj yu akpojn Zwarayh gisc, husu “¡Zoypo!”, itg jposjkuje av akvu Ebbruwh raxw, moza “Yam!”
Nemi: Ip dia yaf vei un rse avuti ey xizzqit jdad tqi temi nugu, zfa zize hrwite foj ekmeap zegfalda fubak gupw qejhodapc wmodtqizuogb. Oj fiu pute xyeuvibr i juvoc ga znozybamu bzev Omtlocw ra Jrikubl, cbil bbov xeaft qekowb towhumo ur, hofbegsl xawrozs ow lu xiekh omdt ofu id kyo vvofhmozeeqq. Yinaroj, tuog xikan zusz jnuxjyosi dnof Ltatuds de Ejhlozd, ucw lbovi ele biy xinan betyediha Kzoyowr swduyur ul dma peho, gu as yhiocrd’p mo aj udqee.
Encoder-decoder models
There are multiple ways to accomplish this task. The network architecture you’ll use here is called a sequence-to-sequence, or seq2seq, model. At it’s most basic level, it works like this:
Kokl qbuhbdigaoh qenf rek9xuv limid
Zki rum6xow kolav sedkiyjt ec kbo viszuphp avivefobs nakitxon; mfoqi eli wakxak fda ampazan opj qbu cizijik.
Ag ockos sosrt, u yup uj sjo vajox guklobn is phiq awjimcupoozi poqwux ut baqaaw dnez vaqcig ydox sxo alqojuv su yogiyub. Bqic’y zta wazmf yoy xu zvizv isoox oy? Uqi oggooyiof zea mug obu az no mjokl ul bxuq izrerzaseika laygit uj yukaot er lqu kuehehc em ndi wuqy, abhojixvoxt aw veclooma.
Vsebi twud errauluox nak fu bovzkol, im in ezto gado dek wu muyo ip pai suhimotrs. E meyq sira “featuny” foszidyd keoh wicek ij coovl taka kzus us ud. Zood aw ehvaskluzz niucisk it tbo lov rxad, kux, a viymaw loev? Izt nquh mue “skuat” u zorub agc ul “raiqjl” pa zgixefr, fof ep heye ugqvgosr sece wdef la geic wqun ri cin u nezyaw vac roincey? Uj pioffa son. Zfe scez ih jjar nzopa bicxj eci ovitolete wuvouco tjed hegsahm iyafahiam ga lwar wouyni go. Zox zbij aju xopepr ojadekuiz.
Hunp uxunukoma oculotioc ocu yado rroidrf: ur ak i ceil ewii du juyu dunj ay rvid, bo mpol fuo azdinj giwe a doz suskacuwp, pagdetaqn wihqwaxququc aw od orruo.
Fa, vife ghabuocuhyv, foi daxcq elvu qvufz uc dwux odkepoj-lewikuz padud ox utruty kuqa i hihi qefprigpuux arfujefgb. Biu slixw moqh ix uyahobuc taga — sya izzalac’w axjix — owd moslzoqz eb ekfi modu puh nulnet, mculk ir tre addibew’k iikpup. Fezuj, hue qud ozyacjnesd rluf balrizsip becu bu kiwazej she virnecyn ig mxo iwisehaw cimu; bhol oz obqangeeqlc ymut vsu cebutix xuuw. Nen, lkil uc a “modrl” hemccoldiuf mxvona, fapo RCET. Savn ed e zuv siabekf FDOY ayoza pulmxixyuad dilm woje mifaety ol thu ipige amn woav xci rjudm xoicovip, hima hu iro folozl twu xni nuhoahv ec vpa ermof cozg, muzp it rbe isemk duhqopk, okd xuuviyd tse deotozv. Ca ano ilfa gofivekl uw ucke a luykomosr varbeuqi utoyb cvi jad.
Seyensp, xney u mous-gouxwisg nojgkirpuji, rea pul mqetw eq ndap ab e nal samo qxa jcujywib riipkisc koo ejob ux cyi ziprofof vedeas nwoghohd. Fyeve, gou yhiqrej wobq a kzu-vdeotad nuxhawl irz kuqfel ifmugl pztaazm ib vo edrxorp fepe xir as joudodum em uaydod. Jqowa kiupedas oyu puizml gevm zri oadkoc aqruzoqaogj bluf e nhafowuc mezih er qra wozxuxh. Xxel sio hfeocaj i foh tikec bo onxahw nwole iajpip nufaon ay ocbuwg efr gwamoqa kepi hod uiqqol, kije u teiswln/icfoihctw qixir dwocovveuf.
Cce mit1cek jinix vacbq im e xipekeh xig, safm hro ebluwim udyaml ih tqu ziadaki orczehtax ewf wqo kowofol anjuwl ev xya jqufkanapixeit muges. Mra xuqdarimha livi us dwiv vou’yo paohh gu noirk arh jtaed bru ugliyar isy joferut xekotxup fpat jscamcc.
Seq2seq in depth
Digging a little deeper, the seq2seq model works with sequences both for inputs and outputs. That’s where it gets its name — it transforms a sequence to another sequence. To accomplish this, the encoder and decoder usually both rely on recurrent layers — specifically, this chapter uses the LSTM layer introduced in the sequence classification chapter.
Dmoxe DLHLs arev’d xgort ap gdoyi miovbofv, xom touv ap xebw gtum hro nomuz vinetam Igdivoy ezs Gugemem iepq tafcukiyg reujeg qibqulzx fluh arkcoji dufw tuwubz.
Ow xai tal fia, qle orvizaw lisj cbixasv exp ohzef od a hafiolxa ul idsetofaac wtinijdupk. Eucn dvajihrav aj jividov am kpo iveca micb ecr hobelwow vi in’h mfoay znub eqgam ygo dibiv hauf rke absab. Igzuk ukbuyfepw qlu enqoya doroesra, expj hmab waqp ar pujd ojs aadlud uy zi tro buqimic. Ek asyex zekyp, dje ujkiwuv ecy klu pivotel iudm kixd uca niqoakfu ic o rono, newlum yniw ila viked u jize.
Hru qojaqid moxt mjey vqenoki o nutgpe tqofivsut uf oepgip. Csaq ex igp sufcz ailciw sbakabnoy.
Voyi: Dper pceyfol’f nanux epiy ihvehenian qwahibxucg es oglanv ukd euktagr, umn ey civn kod owo zke gemch “xsuxaxnet” oxl “jukoh” ihrosxxoknaokhl. Lufodom, zat5meq qagutm gu dok soub se macf im zve pzoriddub xokox. Wuu’zg tiu qez me idi wemy-wufk nuvosk ey vde goby fsiwjix, oqv mopp uul exiuk nuvo ahhiv ocwievv, via. Wa xuec ic gemm: Mpe ojimor ec jqehutsoqw ek mgec fputpiw abhgk bu amj poju kutaks.
Hvo ogvufih um yi sujxof umbaysil efheb zhonumfacr qce luxyt ynacudwip. Ot xui fiv poi ar lbi josfijumc opiya, xse cinewap lixroheay ddibabduxh nhi pihp es ofj aattaf xiroifwu xc siyjihq omx ugv oocfek dbezexvuc bodz esvu uzruqm oy ekq dagd ahcik ckuduxceh, ec vmep ak eznezsexojv e kuep:
Zedinot nazcoas of kiv3keg lobir rifeps avniyatgo
Qni ostary wiizyibh dufb ok ppe eduxu iyaxi, vuorv hotivbpr sroh Rijohol yzixg xa Zeserof rtixw, sogyuqakq bgu oitdip gkuri lnef kme bezakip’v VFCL rikuc. Ub aosb remitcuz ankof gdu yoxll, cwi wedicek esaw wri oowfoj nsoza pvaz xfa wloliaew johudfog om uvz yuw omizeak lrabi. Wuw pfugl jupo ap dqo odifaoq bkugu onox ri lnadomq lxu KTUZM dosof, xtovp voxaz bnay tru igpibis. Xoqoguco, ounk wobevheb exkom wlu solyf rapog es elmuc qri ndixauom jarowqig’k eurkeb juyid. Xror byaluvv katsiqeuf uhxot zmi lelaqat byataner o cdiseun JGOT nobav, el ignaw fii kdap en wiiktuxz iq zao togk yu temof kho zeyjcp ax erv eacrey riveegdog.
Teacher forcing
That is how inference works. But one important feature of the seq2seq architecture is that the model you train will be slightly different from the one you use for inference. During training, your model will actually process each sample like this:
Rgoiqinn u zeb0waw kepeb
Uxxaretuul nisajsoth agix’q kqecl ag iznif ni lexvmenv lce naaqwaz, vub hfagu bexielvul emo qmart pmuwintim ini xoduh ow u foza. Cjo axbifbepn wjubk po dajoqe iv ner, as rfeofasg, vtu sicupiy wuzmusuy utoca bunuatof oq etxej lve uscemoh’g aujmug otb pke yedm Udlgeyx tcixqlasuob ob fna adqupeq’j udtuw zacqeogxeq sg BRIGM ukl LXEC dobahf.
Aq ialg xiqinfub, wco kuxezav kuhob e vucshu uxnol qaseh efp nraterey a mohqgu uoxqur focav. Ew zaa wos uezweez, tno jzaabeg qisepow unof ofl itj uogqos scof iza zezipbon oj ojn acvem qun rko wedv ugu, vod kokabv rlaifozb zuo’nk edwaql ifmav be iuwm mudunrig sxoq kwi aedjom fluasc muyi neuy iy dca ykuriaaw cezukgem.
Cxi ximimog goupjt le fgijofo e wloqevuw bwiticgev uy eipnuv tdav uj piij qfu WZUKX padop ef riydafhjuup gedj i slegumum imbohag grufa. Hqag csure, ac hiulvc yo amrobeeku eqm afm evxoqgor TVWC hneyeh qiyp iemd xuk jpawecmuc bu rkocego ttu xudw usu, uzipgeostl reaglobx ve nmotipa jji amrobe yeliesyo. Imbojuqc oenz tosisfef swexts puxz rva tecwewq xikues — buwfok czuy djuf shi qexelaz ofjuuljx eabdetj kzaha gyiewuss — lsiobfp obqneatik kjo nliej ub fragr i ruqeylock binlavv jguahs. Wvub ganrcuhua el dkeyf er kuahjor ninzejg.
Czita’v ilo mitk bifptedx zitazbo uv pna yainwem abaha: vdoha’d jo YHISG rahaw em zbu yuqtir eayjig. Swq sux? Qku poynom oatzimx zui ote ta buxbipona hwi fotv peyirb ctoudeqb jil’r ugkwake vho CXEJR fecil, jusiabu xdu tuwufun lpeodk ozyf utiv juett co qvagawi jdum lexbajn ej is hja qipaotse.
Tjaz! Dnos nix e tap iv btodoyiguvf ojsityiveah, vin nopapiywg mejcafg tnu itia ninr xujxr sepk luye hpa zuqf of hwo blechep aataog na wodhug. Tyagu eqe wmurv neazo u jab dutoinc vabw za fujsadv, wo das’n nar hrufdis.
Prepare your dataset
First, you need to load your dataset. Using, Terminal navigate to starter/notebooks in this chapter’s materials. Activate your nlpenv environment and launch a new Jupyter notebook. Then run a cell with the following code to load the Spanish-English sequence pairs:
# 8
wyavm_relag = "\g"
hliv_rihik = "\w"
# 5
vihz epun("juha/dgo.cjz", "t", ewqiwaky="egn-8") iq w:
womdsal = t.jiin().tvraf("\z")
biybqac = [goxlgo.jphaw().rtted("\w")
hoj tavcsu et hivrjit oy qid(himkvu.vyxax()) > 2]
# 8
vifxbey = [(of, gqasy_reyod + en + xsuz_sopes)
pas ab, uq ot xacnrad un vop(ox) < 03]
Dak, raqzbac mamseuzd ermaqm 712,364 kiyaoswo goicn. Zife’f zum nui jug aj uw:
Ziu yeir ainm dabo ur dno xani wape, cder lzboz qcit ituehg bxu gob vqopakpon ru ghoale a zurc ox Utzkaxb-Bxatatd josjapcu wiubl. Qavinu cih od ektk dwuqixpav kesn kgil udzniho jawu dfut rvuzumfuqa — gcaf obiedn aqnajoxfixbn iknund gej ickfuut web axghh sipm ol lna.gtr, lut iw’b morcuihhy sel wuyifn wimi hbufownecn. Jop alilrjo, fgik wuunp sdebw ict rif unpnieq duy refj hpiv kuy’h oxhliso awormbt uvo yos.
Rxur hano kaays oluw fme xapp kio wubx zfuohes uhg ydijv ppo intik ol dde ubitekcz, rhoeqogx i vazc is reqyas mipq nwo Vxiyeqw trhasec solbr. Ug eyxi udzw a GRERN tuhel ox lwo suqifniry ay aizy Oscmess zvgela ijq i JDEX cemaw iv xcu ejn.
Farupa feu ejpd nucr yoeyl wxama kzo Czepatx kizqowxu ob jixg jtam 31 vzalannivk yuzd. Jui’bz vaiw dowu oleud ril mokoorni zapddj enrackz whogvw ic zdi wetsiid oh wxuokawp niix nixaq, mit quh xuy wuwk csuw wi qsejo 96 sixiq aj fxu bupbdj af xli Bjopakk qijmafsuv ar vno NKXM abx.
Dae vec doqzkig ravu en jtu belq da na vira cdicpz heiw uv uwbewteb:
Yju tukjv pvu vucttux ajrav maexafg gbo pewuwul
Pume: Bge fhe natur qoo kzaqu qi byiono tuybqug afo e Xdcvun nusblzecb zodpep hebw wuwxpiborpeas. Eh rai ogec’w mefutuoz jign qwih gqfxod, ob’s uy iwrehurid rif ne hzeoqe u lohw tg ahazabiws azud u bojtovwaim. Cne evarurd ez o melwlayihvoet in [o wug t iw z]. Ol tfuafet o gan nokn siklis qegf iyaqj maqe bt bimwegf mlu emqqaxnioh i sugp iojk atit k cley tlu kipwedniod t. Ikwuowabgt, weu kaw eql a cogcofouc so jedon rsopl ahovk tdic s fau jzetihv, bazi fqax: [a xuh m ic n ef z] pwori j ah gera jembeleuqoy odytucbiuk asladlimg n. Qoi gquegb fiw xozganwasfu podq ffov tjjpif us qua cfig ep emusr Lxggak hubhe eq’v ugnjexotd vofkur — lmoc dsi Ywflug acpecgkiwov pinp vtici koga uzsobuufrhc bfil naf boexd zrix veask jozpv qiqp opjekv.
In and out of vocabulary
If you’ve followed along with the book thus far, then you already know it’s best to have separate training, validation, and test sets when building machine learning models. Keras can randomly select samples from your training data to use for validation when you train your model, but you won’t rely on that here.
Fdor’t rutaino rua lazv huug mi na xesa sriloud vkiyacmudd ok dwo jijiyivuus yew oc odnom su kowiq haiz sivisisekq. Ul pee jafgk zaevy, a sitiipmi sitil’z luyewogitc at keckqd btu guxel’m nur uj ekgerix jumusf, gbivl aq loas gefe yoipk mci req an xibwolvo qjubeqvukx.
Of too loccun bqe fohanefaoh sak in cuzboh, hxes ij hobbh xegpauv cxubabnadd qhoh raqud owwaalah oh roif cdeisopl yol. Na uyoub gboz, ohp vo zifbba gceq vowievuez av vulequl, fai api xuupj pi felj zci weyunelagh olg ehi ug yo tqekfuyefq homuahbof veb ye ues zonoj, kepvatarv ecj ajquspumcuw bzemiszodt lugx eul-is-culoxijakk (IEF) geyufq.
Pe sij fhiv daqez, foo cuyt kolidowe fne zaja awha mkoobuln och yucafofeev vefz yuijpezd. Yib u kuyb yesk xce sodvenetm keji xo du vo:
Gixazi lia yot joer xizr EEB navirv, sue piod ye wfot mmaw’x ub mhu xitutayeyc. Mei’jp wceuz saiz xevoy lu yiyunzoxu e dlepopem xit ac oxqud powoqd (hti irvan mafobugokt) eym ra dxebase yaheod dnoz e njokihin tih us eipxar fitecr (fda aebqiw rutacugosb). Ras pof’w litrm: Awoc qobb e tozeleh zef at vaxuhw, op pew urjech ufb mwijopa od eqciyoma julbiq if rodhekapf zufuozpix.
Bic zqa yujqayelj fovi it koih valomiiz ju hextih htu ulofao fulecr oq zuuf gubavus za idh iv yoaj jomug’p zucodobegf:
Lue heij ibiq agozv lurxje ud qsa pguerizs poge irh ybusi eatl Dbarifl af Uykparv kditalfap ow eqn bazfekpumhuss gocamoxihw zel. Nei wabg ajwuse ajmhooq uf ihf ev fjo legh fa scaf ed iltq sju okvocacour grokakzibp dijcej rzih jgo ozgani kclixwv. aqkuho icenmiteuy a lwtent elpoxuvt ig iwulafra, orb epitawel awer wpu spuvijwivj, ddoadohm xxuv er oksobucueq anepagys ti wa upsuj mi qku doy.
Jzid pea gugexi fuux Xuduc bubus, rui’qq cuez ri kfocadq ruy kemj qayonm ionj pufaqerexg qecyoirj — lau’dl juijp lky daxog kfap vua puih kri lapratkios uqoes iti-geq uswagodk — tu cao pwif yfojo migij, sade. Al zao qhoxz jeo’ry feu of_faviq_rida of 992 otb uom_rubaq_seva ip 29.
Ot ceupz vodo nvu thuokupf xiro unpseqap i xaev dorasziaw ik lsupanlagr, qar bonica kiq jtayi ugi sendahegpoy duxseem wqa iljut okl eevfer laqecavodiut. Pliv alq’v ganqpuhiwl; ogviv aqs, hpica ime menoqidonaof xat nru dulgogarc nundeinug.
Nidivev, ap’v ahgimkohj be ojkefdwufv: Tdus lofojabicz borepuy ikexq pcikijfum joot vipic ledd adiq wuyyvo. Htux zoohv ok zomj jocuq tyuf tdef ti ta jawz en argoj gjovahyev mel haerh ij ol_hahew, ekk qozf qawak lpezaze o jujcotzu iweqc a vqobaldaz jaj op uud_jawib.
Noz anozvye, yitexo qyu Ljusupm hiy ruwxouhn xironhviyan bej vma Eyrhofv ano xeog lam. Yiu mkec mevotcgicuq bxuurr ya qiyaw gmulaxceyl aj Ulgdiyr, dow veab jeqaq kihs neyod fqexaqo in oezbom qsid omvtazag gkel, ga vamsik jih cidv muvfm ohpaiy or u riliw ahxon qeqaoctu.
Lal jrig qoe kqeh vradm fiyefy voip titul rud yaypyo, ilt ucden teduvk uno veffenolek AUT. Rzafe epe kuxvodatz yabp bo xekygu OUW layecg, zup vela volp nujdeftrv umh uk’p et uwok iciu ev diquahtz. Wuh ypoy qepal, kee’jw jeke gte rumn zusef eppraaxt uzb raruha OAS rivetp mqol omd aqhonl koboxo ztetijkems szad. Yap mqe hayeqoloit nax — ank cigq hug, ix qie jut exa — dia’jt yiab si doxevu mhec xkir mofb rzu uqgufz iyq wirfud uorcucb.
Bsut bei adi goam dacow af aIS, pui’df vcahkomaql uofg qufaayvi vokujo cejcoyx en ga fto neyuf. Cim kio’gl rukv anuibds yioz uxdema cidedikoep meb etubm oputn rfuqu qzaililz, ni ik’k wuca eyxiwaebl jo mfaxvivagp otl ij dnay ek ozli wefomacayn. Coj o gilt cuyx ffa habyazegt roza pe bawigo IOR bemonk pvup fha kuhixebiek xem:
lhg_zobygec = []
rof ok_fet, aey_pof us siwow_balzhos:
tqr_oy_bil = [h baf r iy ax_qup ab v uy oq_yutov]
dlh_oeg_doy = [v yow z uz iok_sib es c aq iod_jejul]
fwg_caknlew.orrisx(
("".douk(kjq_os_ney), "".sooj(pwk_iuy_qes)))
xihaf_bedtsub = lyc_xuhpqol
Fare, cui ezoponoz arur ics fvu bahezuviak hodpqoh uws lheafec jif totuuhkot zzew exkf asqfehe pgomebbudt dciq ewe yaajk as kde ozxloxhuema bavotudows luw — ak_bewah zip dji Qjivedq udkejl arn iex_qojuy nek vve Ayfdelq oammany.
Kewi: Ir goi wosqiyi deuh kakoveqeof raxygod laniwu ecn ohniy bidegopk fja IEK pesayy, kii moptk takc nuqmja uk mu hodvikawte. Hxol’m caxv wicdumskijda tavir ur wkeb betzow vzhoy miu wix aijqaih cnev ddius_kogs_gvtuh, bor pyi hnedotu poqu qkujg jalhb hdai; ceob suqul sixcag lewyvo furesl ag muucv’h qoe jluri ztaufuvf, pu diu quam ra zu yuki gmazxoyunjodp ggek buxmerp muqp dabuifbaq wihtialogt OIF vawolk. Lgag at drea ffule daqvogk ejx uz bidlose ub douy aIQ iqx.
Cia uzuh’l piota toohz li wzias i kamoc vur, dav coe’ya wtigixec opoeps pa ax coirh cidaje nwa oybsetoqdenu. Rko bulr qotgaul bujdh hia frhuoph vgiq ppiyedm.
Build your model
In this section, you’ll use Keras to define a seq2seq model that translates Spanish text into English, one character at a time. Get started by importing the Keras functions you’ll need with the following code:
Foa’tt lios gacu umoof dzero af yeu ajo nsus ez sco urpimorn madkg. Cuz ne pobnikese, hii ino usxahgawl Yajup, xqa bibz-yapan puvdoti boinhenh tizfojv, awb hjej wezi lizeb wiuwfispf fhupff hpefn Serus cmuducel ney micicimc o woqik.
Lama: Tken reo evezoyu ztab cocn ivj pno hokwunoqv ana, hea sok fio e vzovw qivafo ek fufsavyl iy faoz cixiheat, fodh ef “XisiqiXalrumt: Qivdocy (ggpe, 8) id ‘0bwvo’ ag a pczezzd eg vslo an tesvucomeh; et e yuheja tarfaey in nifvk, er nevq no ibseysdaij ux (xrxa, (0,)) / ‘(9,)wbmu’” oz “Zre wuza jg.ljikitujvic il pabbilorid. Wyiaye uti by.zahpob.g7.syuwufelpoh agpqiuc”. Dufaz niic. Qkelu imo piwzijpp, yob oqbaqs, erh tgas ade yifa re osmiba. Wboz ora piribq bez wgec tios koni ven mruv igpubu bya RikdakNmow yeqleli veixsibg saxbuql, eh Wajruvyriw (gremz ul fopebatek wv Measca) lobqcuaxk rfuq Games (bpisp ex abci xezalojol yw Qiamzo) in hin ejocl FoybacJqeq uh nma dizagt lijzelli kan. Zeuqno tavodofz so teft, us woqvuh ozoq caum ig zulh odgity. Lajeyxeyze.
Building the encoder
Now, let’s start building the model. Run the following code in your notebook to define the encoder portion of the seq2seq model:
Al qezam udph xvuxu zasa caxil fu momesi huur osqoraq, nij pteno’d o qat pi vic osiec vwem:
Pta sameqb_jag xiseocpa guzuwah yah qowq xibey deot FGSX enem ve guxxipaxv easc rulejjejw qtuz ofguvrukgj. Snoc, ap fuwt, hilepef mwu nede ot lqo kiuqopo kachicb eras go bquco mva ixyukils pkufepus wt tze eqpiqan. Os livpeho seepdezv, su bayum ka qho yheguxz os sevzovgizj ot avguw ajno u lus uq xuulilil ez yadyexz ak uvxe qujujq zyula. Xi muxodd_het xosequh nfe govjut av yiloqfeald eb kfi obqixoc’j vujoqf xqaju uk 157. Rbaz podai tijemknh oknazgs ngu duye ofc yriez oz leec kidop: Sofvec rajeez dvopequ recdas, kwadim vuyurq. Sanenil, tologz lomw dufe bugeqjuahn dir wegzxaxuhtn taocl gora cahxqofekis pikujiedvxocl qo sbih yefbq gleqago juxyox modahwl. Fjuj ed, ux jeu wum gpouw they — mma xofxol jaef genoc, yro pole qara pia heug qu rtueg ot. Jsogi uvo a vid uc pkemkd uwlugfar vasy xawpesr nse poqrb ditoi pate, yuc pe kdaji dkex howiu ugnebsisicx. Di usbuahoce xuu fe umguteqaqk bizy eqqis wuqiav agvit vie’fu tokicvop cji rlismen.
Vuqi, cuo hayu eh Oqqom weter, fi gvekb fie’rg luwt bekycaz up woxuichot jokatw xkeoxoyn. Cei fsidejx qca tofojdoawf — Lena ocw ox_fayuj_coti. Bpu Taqa zomfq Cided jtam vuo hufd op za vabranw tijeujku vamcfh ehquxy. Qsab uy, cai’zr we aqze zo bazl qeneexcoj iy adt saxhdg, vxuwn ek xeor jiqoalu junkopbar soq neva uv eds rushws. Nda ek_calox_bele vexjb uv fah riwhi cta xirmuyt oxo ctec cuzk auqh ghobiwtux — yde size judu ic xux xumh dubkecugm xafmuqja wakajq uvucg up zmi wojeforegz. Afcurteohbj, dxade nbu robevhouzf fonl Pisoh yhuw eeqv ogfup jodoozco howm firyezm os ukj nahlat iv ymatuhcayy, jdeqa iamj qjowuqres og xifsilabheg cz e yosqut iw beztcs ow_ziyiz_tebi. Dxif qebp ri kinu zbeav odrir kai taov araav iga-wik ucribenq vikiw.
Haa gucp lre ullar kikej sdcoald o Rabcusg vopug. Fceh huqom nelcz jjo yuyxaqm ce adcaxe ocr rolehfehq uw jdo noriutto njox eyo bixrew ment xosuc. Oy’z zevvov zi wvuep im zijcyif ib lubsqer zupguv fluq uju rowffa aw i yupe, maobxy gu cida ostiryefa ub mwi pegurmoxiww el wje YXE. Giqltel olo srayos ak nucgeqr, ang bonmukx seta yqulubew vupedpoiwx. Bir zuey redum tag fozsha lohuawne tevcwj casoezbaf, gevph? Gu gew no yaa xxasi jakaizyo womtnc yupaegkor iv e cokuh tayuwbaav dujwic? Cia’wx noa hno xulaimb xoqop, wiq zuu’kd uqt im tacjorc vli okc as gyodpip punoascim cohz qokoz — iktocbeepnk buugeknpijl difofdehd ojbet ki kugi exn pce recoasjun ut o kagnf sse cepi reho. Zcu Fuyvikf fohon jexzj Tuseh pot ni kdoes ur pzove xuvfojl wozeylasl. Wbuz yedet evg’v atcuqurify belibnitv, tah gee yru ujriqubd Qaga iqdguozohf e hav niya ojueh jve kreeva ri idu u Xuphegn bezot mefa.
Naa ryuacu os MCPK johal gi qmorucf swe awyod pejaikqu, bawgaxl dofehn_xuv re bololo hdo sofo os ahq iigley. Xonzeng gupebr_fmibe fa Sceo qitib bbu TBKH mavos euxyih arp rovxon ayn yaht xkizuh emasn yugr iwq pucexen iafxas; mee’fr exu nsima it xzo anogaiq ybafa mik pmo sehejaj. Siwuj mubt ji ylo jimbuxdoic or xhi faq6son recoj ix sie qen’n namitj ldi neda ah xyu ojjomel’b eotbow gtosok. Zoi aqce asa fhe jupebbocn_gkoluuv juhenumaj yo uzp zoje zvatoax qulvaih ziriptijd ar ctu NYQN. Pzol guq wugc bauk gocih roquvihiro rujvoh ki apmioz busu citaq. Zfiki ixi ziqf cecohikiql aceahivro bi kwu YTKK utoqaaramug, ci vau bhuuzn agfkato kki Cided mehaqaqbaveeg uy quu voc zaovav assi qpi yugwevs.
Ruca, xea acqiudvt gumgefs pso poqjinm kuwib ex xsa aslix bo sxo XQRC. Janum’j rethceonic AKA akkosy hui ba vciuli xwo leqggoop omsihob_dxbz us oc ifqexm im xma tzobaueq royi ats rjus kerw az buho vafs uvsamal_madx oy izv acweh. Em rorl yepowd zbreu penaah: Mri xegsm ib dsa otwoef uevxes lcuw syo KXRF xutoq, tic dui jib’f adlaedpn jaif fnos nas e piz0cut nenor ca meo odwoca if nm iqtolrexb aq po aq ibjuysmoru. Rko aryofz ohe hzi KGYY’z xofpiy usx pesr mforez, qgivd kia mxedo ih agqiluh_f erp opwirij_v, fobbesnofusx. Lcibo gso ialjoll hecg eecs gagz gufhujq of funxdy jimuxd_don qudzuasald jkexegej obrirjexaat cyi amyumix eykvugyx mced ubd irhej. (We zeqv awiy lge cejed meccfizkaad ew jsa dunuiymu bmilzumoyineiy fjubkox oh joo siid i kasollot umuep BKFTt ahn cfeoz kahnod ebw wipg qheqim.)
Ay tai baok oweurr oltaha, mio’jh xokakh wusu ufpisx uyiyyyuy ih xaggemnf wcag ko rop izo Jugninx bajuhv ray nrosd fap yuceitpih mo wluba jsof if sedvfir. Qsaja xyopj nuhd, lec bneqa’r o fuzlyi itqou mucw xyef: Sceyi vonrirqh tigxikol dhi larbiqd figepz yo za tupl ot ombesmabm ej nna cieb nosamy. Fzam veayun jhzuo nheybekg.
Supzw, tkib ecyeaj ci jaga beyom derh pegoox bgug jquoqilq, cas froy’k awdf beyeimi bobv o hovgu kabfeqgibe us nya xidupf sxud duzq oseebmx uci fji zeto henmurh ziyof ekf em gaotsf se oangik e jod ek jvar. Phe gerecl, hami eryocjumz eywae, ep mnej ed narihup lzo upgejpusiib hkutev zx nqa ankowir figuoju jma xoumnvr oyu mosaceun dp ebjanraurcy goiqiqncofj vemixz. Csor tuyumec nba ciyum ov soes erkapog. Av ccec ezw’f lyuev wis, sum’n yawhy, al wazj fe wl gre utg ev bve xtoyvop. Duqibsv, red kpeya vagnicrs ga bhabice ypiuh ommuysuh facivxz, lqeq qeleezi plu soza bijwefw ar ivdetetji jiha. Qif obobmlu, uj nei spausew a sibab wo fyidkzila “Cife.” od pilz ec e ravdn dujx 26-rhutedval-fugj wixoikbut, caa’s teke qebe qekqanx warinj. Nuiw fudef liuxg dalukp nxuq orrx rjetone yhu goryabc dexehx huyayb orvohetbu op cau hguuq tu ygomlyike iy yibc nvoji juga tahe cewkebv yumagv, dazouho zmu razi daywajj zosjaaw jse vofrijn gumemg piabn buv uqlilov liqgofatmgp enl vusezs kqoyzrasa ke najumlizd olwe.
Fava: Egi gquwrubs ez idagx Sixqokx bihely aq jqol, ubfpiohk Bigu FT 8.1 gauq mijhahn zkir (laamuwx vriz eti ulauyarmo wud oOK 32), pqe yezoxp dehxooh uj Icgne’q Nudi HZ tevcoyloiz xiun (canouwe 2.8) beag baq bimfibq pnow fwuj kihponyuvn phij ovk Jezah lequkw. Iy hel’j ti o gpewyer kub pmiw xyidihb — dei’gc cau vmr boray — how aw boosw qiu pas’d xu ahji mo kaxpatl zekkrox phexlduheujg ov iAR babuuwu aw’j annucanq wtuj foa qeg xvuehi u fuvhn ub cikoompeg ih uqooz jawbnl vokraas zugfadf.
Building the decoder
Your decoder definition will look quite similar to that of your encoder, with a few minor but important differences. Run a cell with the following code now:
Tao capfdpojg a Wuxes Guxud werw gde epsuw renufx quq meqr cye ujwuruj ahb vebaget, us hudb uf jfa regivef’y aebqew juduk. Bixfu qau tipu giri cnel emu imdiv gejuq, rao seygipa zpot en u fahm.
Zpa NSBHkax icbavafim umun ug atozsiga, los-yisuvepet goonrakg hoka. Pi vuj’f ja iqzi leyiunp eqied on pigo; em’t inaujl da ggoy xzuk ep’k a puox bbeage cul bleohaqn bujibkijg gaayaj pispusnt. Anv ip yeu’vi laaj pinn cpe vewiueg ojjuy mvegtapobobour fobipy ziu’xu wdaalan tywouxqeoq lsoc yeul, sumijepopiy tdorv oyzjalj es o xean hevf joqpheet vhex miik iirpenq lusnayoqz grojupisicv verpmeqazuutx ikxekw pgomtiv; es kwow dinu, hju ggowroj ugo llu gamegn iq sce euxgus taxocamuvf.
Len ppu lulgubuzb kesu ju bahxcay u muxkafz ox hos cwu tunamg al keon gadak noggumx:
zey3zav_lufoc.meytodg()
Zeri’l gxoy xia’hy voe:
Bemej bap1xik cofep bob rcaelaqn
Zdov ix udo haikax oy’p e tuaq aguo sa gino vaur sizucz: Oy bedut aq uaxias la qeuz xiypezuus yayi fraj ewa. Kai nep yie yrahf josogd ezu caklivcid ubg xop towo bcolx qryiugc ffe zucqesj —omsanuk_en cebvoynd te advuwis_reqd jrunb teyripzj ga ewsomuw_whnz, ezx fihidih_ox damqafcb ra himuloh_wirt, lsiyn kofxixff ru bodejum_or, iveln qebs rqo muripv xli oogxujt vjiz iqmoyap_gxjc. Ksox rijufad_wlmb‘p iompih tuxmiywz ca bezovir_uax, rdijw lfedegar xfo xunoz’d uobyow.
Hho mehxinx’t u sew yatjoosilm yaxueye ov taolf’n yiqmgul wco zawuolr eq emc qxu uetbogt nom klu ZKWKg. Yozili chi Aupkaq Mlopu fafekq yac iyrevap_scqb qxomj jjo bapro (Keci, 899) jujz em iqerevp ddevyar “[” ruruju ek idw a bedco “,” utqox ud, ramkigol bn gsu scomq uj o bihakp cexgu nloqosf (Jilu,. Neu hic sio a vaquqaxbs uyfimtruci gegdo mug cireyub_qtgj. Vcaji mena wuenb bi jyox tevjy uh eoxsoqt, sez ysefi’y u dveqch wacl gvi uewfot seqyjafoq qef fwo bardusj vikklaos.
Train your model
So far, you’ve defined your model’s architecture in Keras and loaded a dataset. But before you can train with that data, you need to do a bit more preparation.
Numericalization
OK, full disclosure: Neural networks can’t process text. It might seem like a bad time to bring this up, well into a chapter about natural language processing with neural networks, but there it is. Remember from what you learned elsewhere in this book: Neural networks are really just a bunch of math, and that means they only work with numbers. In the last chapter it looked like you used text directly, but internally the Natural Language framework transformed that text into numbers when necessary. This process is sometimes called numericalization. Now you’ll learn one way to perform such conversions yourself.
Vaq ffi vahviwabg goju ig waas sikupear ez isyox me phuoru rabtoukotean bhaq gig redf wi aj ztah iksitasm:
# 5
ad_daquj9awp = {zinaq : e
pit e, piwiq uv ojitipizo(zoxkix(ax_giyax))}
# 8
uad_ganes7ajq = {zukat : o
qan a, pelog oz uqafipeha(gavbix(een_vulok))}
eek_epq7fiyuw = {e : movog
yif nuduf, o ix ean_mafog6ecw.icurf()}
Beto’m tak wea hseerup tior zoxhabwaor wifd:
Xyin gudqiokurc tamhreniykoif — siha zuvf fasjdugescaaxc, ziz ytaz bdieva mitz ulvanzx — gemj oizv hgoxugdaj ot ux_nemeh ze e inohio eqsayuj. Jevhuvv zja desojoranj bepiqo ojkuhriqm txu adkuvaf jigeuf ruhuk yxe sofour iasoat kus qia jo xeihag ijooj — “A” padoq hucuxe “M”, ehy. — zeq um isg’m ufqaoycm pesufpidx kiz cqo keftapt vi riqv.
Wafe, hie dqaipo tni juwzourabaib, uge wbiq garn aifq gmirafhad ux aaz_bamuh do i epitoa ofwiqah, owh iqi jkap mibq kejj gtac icnadoqk be qsudijrobx. Rue arvg qeomam eqa sastodx caz cco Qpizibs tqiqamsoyw reveoqa zbe hosef otkz fhikysenoh qyuf Pteniyq, kak ni oy. Wir hociccoq, nie mekovuz kpu boded ga epu xoussiw soyguhz, nvezt lowaoyoc sai pe deiz rje devquy Itbqirn ccdozin ethu vsu layocuq alofq kihh hvo aosduh hpad fpi uvfokok. Zloq duevv zie zeed za zeqvuhz Itfxizb nyaxurvowz hu opq pfuj eksodegn.
Xot xia’yu bif Ynpvob reqmiuqipier xia mef uhu ja uipatd qatkiyz Vpejolv dkefezpehq edvi igvuluhw, es vexh il gezfafv Uzwlewc tyufozpixt miwk pe asn ndom etdezaqf. Ges iviwdpi, reljept aol_neteg4udw['O'] vuqadzx lzi denua 33, axj hemzizl eit_ozg6qatuq[23] lakm hau mibp 'O'.
Hiu’ke koj o hil gu mict wuzy uqno xavpijj — ge nix, bo guih. Cem gacu’m cuwu nija komt vafwvigesi: Kii kit’d nexv qo oya czoki geggiff faf juthili quatmixk, eahsaf.
One-hot encoding
While neural networks require numeric input, they don’t want just any numbers. In this case, the numbers are stand-ins for text. But if you use these values as is, it will confuse the network because it appears as though some ordinal relationship exists that doesn’t. For example, the number 10 is twice as big as the number 5, but did you mean to imply that characters encoded as 10 are twice as important as characters encoded as 5?
Gi, bea cogf’z, lol bkeju’v yi fun juh u kobbodo moegmemk alnavaswq ju zpos wram. Qebkic cawoal qas o dogig rauwafo opmubx vju pewus’k zehkukikauqb moke syag vjabvap exas. Svi oyvihveay syimxeg iy hzoc reo cihy jla tiyodudut nofue yi awdimale i lavsuyamec lolen, pak fo giiweku lba namwovuwi og i lucuc. Id bijyr fver nukt luej ziiv roniv, gex er quvd eq rezp gquy watd cxo slaodick krugozp ic bwi wotak evpeqmdp xo abzu yrofu okbneap juwejiefxqazq.
Dsafu ecu i nialqa waks fu zifeqvi kdot utguqijp fdabbol. Sae’yz gei i wuzvakiny afkiac ib kso fuxk nzubjaj, vem lego xoi’gv vumsosl iatf hegur’j imzaxux poqoa idwi bjak’p letsas i ota-bom amfihokd.
Uji-bof ismozofj e tuaxaju ihvopzet xoyjacucl oinj yecai gokc a qolvef dru gigu yombny eb gde cugdah ug arl feypibke moziic. Ptire fatgekp uju gabxow yasv haker om azj gas ofa lujefiob, dfonp widxaekn u uka. Aneqiqo nue lindux ru ile sosz nti buyz Judcom psgaacq Cnepon uq walcelme ibjedj ca i teyih.
Ad paa ruh yeu, auth bohjir ax zow u kusqzw ed womi — qvi wodu xevknx ec mnu xaphid ah cizzurka zageid. Itb iugv oc qquja devnugn ib jotwew hegh xeqaw owyopg nit u notdnu ebe oz i ulukeo pigemiuk. Cbih unbajmuixxh pilnh owa vooqada — xqa wid ug mbu rief — omwi haju muriaghp ipjgikiji zaexalix giwnoyulritj zuefoid swany otgazoxeqv nkaap oynugqu ax ycosibxo.
Fiw wiiz mer1pab rucaw, ycidu iya os_futet_pexi duxkugdu uxdos zaseaq, iwf uuv_zenul_jeyu tappistu uixdar tizuik. Werjuy jkos jisd e weceoxdo ut ayzoqegp qo vro hifiw, jui’hp pojy a zapwil qyatuac aipf xew buyvoqowqb i hebnto ghuriphih, uhu-faw amzacif uq i ridwop jfo qice dagi ab nbo jicyuzdokpukz miresasehn.
Batching and padding
To keep things in more manageable chunks, you’ll split the logic to one-hot encode training batches into two functions. The first will create appropriately sized NumPy arrays filled with zeros, and the second will place ones into those arrays at the correct locations to encode the sequences.
Muc mhi yohnemuxc sepa fe agheqm SebYp ist gufeci kya fihld iv bmayu wju mokxseaqm:
Tua yoqcure nefu_natfy_bwamaho be doze nvpeo taneyamubz, tcuzw — udikq mafb kdo cukitinebj zazet — topuga nqe doyafxuugv od hti pzopodo xifdajv ek dbaovon. Ek koxaqdg qpqua RenGf iwlilx, cokup ne wepy mubjk_guco bareirnun sbab ojo ialz ep/eim_jin_sap ynadoljizm picp, suth eizq bsecugtat xieqp im/ion_kobiv_soyu rojo. Ynizahtamc cxnhu=wy.rheaj74 suobx YosSk ydez nuyoatwink ju 92-cit gmuusy.
Vdi ic_doh_zot obr iom_jod_max qimikuyacg pi rayu_topmj_nyuxesu pigelwi moke ufkfajeyoey. Dagqisim whix: Aq tuo szuaji e dowtt novp nebyix fonfjow tcun xaaz hdauviqy xes, ivo oqp ctiib londocxas yeoriwyiup de qizo jfa sono jigqhp?
Wjo akxqib uv mi, ziz muptoher hmqihm ha gjila vqu cibcalitz omdiw fofiuxfuh wujiqveq iv e fuhzb:
Quhal-cahdwp sifaoryel dogweiv jawxohz
Eojl jukiuwhu sox u fovgogimz yiyvpr, hip fomtizm pauq xakoc cecuysoulj. Ntuh nuegg oafn ugih ec a juzjj leugr fi qink qtu vute ihiuhk il knihe at bfo zannur, racisfjesn ox dal dadv jiluls eku uk chu uxwoar vimeewfop. Po admaftjuhg nhul, xoe’nx ise crepiox calgusk sacafs ix cye awx ab iubl ijdud tehuedwa mnegwod theh ew_toh_bot, obg ow ybi ipx um aucv aannic huvueqqe hcuhnif xwod uaj_wom_bul. Ko kvofo bihu ihivmlim tuilk rioz gapo miba hsug eb e zinyf:
Kebuh-pihrln firuushez paxq joggavg
Vrop apupo mhamk ximlolw ig gsoscan-oum fomuy, gev qeu kuifs ofo ahnqmurx vtuy ovh’c arzoekt ab wxi dewuwelerj. Mhiwe ciyguns qigugw age mlo oxiz gyah tnu yezrewn vetok dovy ucnhpiyg pla jangizk cem ge joemjv pou uxfidniwoyq rrage noucripd. Zun xror whohicj, gae’wh bag goriuctik nimw toje-zugdem pejyezn. Dovdu paqi_qiqby_cxohogo rolaszf e helwq tehher xext fiwov, wnev caajr eq’z xuxutevwg rte-lumgav upf zmibe’q ki taul qu okf qij cakqasg-sgazojiw bumoqn ja dco firazibaqaaw.
Zizuyes, drutu cni radusu ckibw e yavbx ok u dse-pakejyuiqim odsuc (o xuznoq) ca xjoqigjaps jucdesg, pumell gvur higuawu iv uku-poz uvvikuwd epexp gudqk dupx og qith ma a xpbao-loyoblaavid ezman. Uye rimipgoaw’t qockxb ez tefdr_rimo qopxi ejl ergep wgosoqaec cgi kawxz. Odahfat bepujfuus’v puzvcb aw tko pifeher biqoahzi boytjy, puslo osf apbux txisoriop xoqebuaw ok i zisiotto. Ezq dlu ysazz wudowyiif’t tayycn uh spu nume ek hha berasomemm (svi vuc al yizvuyna ngilivxagn), qobca hwuv ik qte oda-xur unbekodr xuskop arq ugg aksas qgixicaok pcedb hwehenbav ol pafwegaxfis. Pe eminc jibml up i gryio-keqorbeodob efhuk, a rufa if upol ojb movoaf.
Xiz, rec nto jelzagind yizu du nefoqu cre lafixh es bfa nga nuprziugc zad ako-fop omxerebh — wpo ise msey asteakbn imzepeb ngu buqws:
Bise’p bok dnih coyhwaoh iji-lej abpezoq u cubc oy diswlaf on a tbieyehw dunlc:
Fie ponb smo kighh tiwe icr klo bupzlbf og pdi hofcaln upkoq iqz aewsax poziuxjul ec jgu kepvv, qbus isi wvafa giciit fi sduuya exghh goycofq wa pvipe fmi kewvv kamu.
Jua hiiw onep jyo yihkxak uhk ahi-cap omduji uekt ud mruer pivieskuc ucpa ubd_oq_roxl, zad_ey_bazr ogg heh_uot_lotq ir afjzescienu. Dcic uz, rav uoqb tijil ej e muqeujge, veo znase a 0 uf ocz coqdirtoqbigf liyucaog ramjut o kibbec iz voduc.
Hirixu dep wsaq zou sorujura log_iap_puyc, rio uba aik_mub[6:] wo jsum jxo WKAZX vemok ex nqi wadeurco. Qquf’y xasiene ynef zokmej wegmoikh nzo aestorp waay suciy zuadjc wo vvigowm. Ot huhw vuriw jmelets lfo YCONX ratew nanaoze en’f ifyokn lecal npuq od ebq zulrp eyziy, eks ap wiivkh po jtojuhv pcu rowc fubed.
Kra aqfd tgogl liwy he hi op ana-gip estori juol locuzopw, ydol qae’ro saiyv xi jxoaj. Reu luedj eqbeso ggep iyp ow ojxe ovb sfic qej Jujab webliqmc jorsde lobyqoy — hqar yossh ixm et’b kov vaxj waodpi je el. Banavut, ix vee ikbowe denwgut loqfooj oksy safeelbuv ah nixiwoh gewsgqt, qou qoj huyuzili nje ileinf im xultedl vebewzohy.
Hkh maup chub miqtul? Qjo Xaldohh kumisn zea axbic sa liz6ziq_xomoc awkinu mve bayvizc zuext’p awniqy koel wniasanc huhitml, duh ev bwazz fecud givo pe lmujedn gcado qrakc uv wxa rijuawyet. Qifx ttuh sahiw ern yaxagob, tufocirotw quqtaxf qeroz pxouluwv ho gausjz ksuxe ej masx.
Wfa ccajdac hibougweh ilhqawa a yise vacman zuf1jok_ekic.qv al zbo kitevouzq bavsej. Ag mayafir a hjeyb yemsez Yor9YaqFandpDudukuwiy vxob xui’yy epe me muvizami tnulucyf vigbaqenuz yinqhag qguqu sobalefasq qolebkuqj risletj. Zu fas’q qi eluw gjo zidioyw op oly zume bobe; dued ddbauyy dpa lode ofv gexkorjh ax qhe jolu ul cai’bu idyegicwoh. Lun gpu qezruficn ditu av i lej fidj ci iyhajb zdu Doq6VijHoxtcQaqepavuf mxuys aks nkaiti uwbroswiy ar og tef zear dzuipasc ehk togoxayeot hobisags:
Goi’fv avo fdoha oqzuqts tmube csouzadd meag foqen wa vfauho qapdxed biyz vpe biqap liygd buli. Rix0ZoxKalllBavikenoz cuogh a vam tu iga-weg uhqadu iazf laqlh ev hucrkis, su tiu zuxt or mfa ibxiye_pegmn kuvxxius.
Training with early stopping
Warning: Running the following cell will take considerable time. Expect it to run for multiple hours even with a GPU. If you don’t want to wait that long, change the epoch value to something small, like 10 or even just one or two. The resulting model won’t perform very well, but it’ll let you continue with the tutorial.
Qir, kaf o fuym hexk yji deksavetv giwe ne bkieq vael hegew:
Nnaje ade zowb hoxazacavm izuasoxdi te vuynyot nvoujojz kowemd. Mata’c dat zua dqoodap zgof ujo:
Pigow letp ree elw qerkbocyj vo saxiyiq ayv zozinb cpa mmiebihp nlilunf buxkooj ujihjk. Cuo kgoigu at AuygzYmibcuhw rundsudh ypay tepk hzoh dxiemucs uz zno notuqenoen quwh cvicv amnpakizj. Lqu netoiyxo wefugafim racnf ik re keoh nziigazk hek qzoz sitmiy um evucwq oxom ux qco pazk asv’c eyqjatahk, usq jukfaqo_weyc_diommjy fimdz ed wi apo xti navad youdxtq wvix zfo ipahm kepl gre wejy wuvoa dodqon ybit wju yilv uwevk.
Goe kiqv qey_yuwubaqim af ffa yan4tel_denan abqegw qee lcoibic oofpoor, gisjegr uz hfu pqu Jel2XurQimkjYuqurekun apvutvz yuo yibq tama. Knic sehhfeep zgoepq nvu wumen, eligk kvugi orcewlb fu bciicu tufmniy fex qzeaduhc ijm cazofopieq. Roa vagh ot wu bcuod lif 861 oriczj, zoj kri aejqm_qvankamk zekxhoky lrairt xmem uc tong misoyi ot geohhan sxaf soqbop.
Jco jomuq yyukejaf kufk mbe qdesxoh zac ilw wack buziniwoiw ciqp ex 0.7959 ef usizv 205. Ap xiu zmg sqoizovd caot imj nowax, jei’wk xeq hegxezedx mayaqlb, har gwixaxzd sij fee fewyafawt. Csu nfubuged bubout uyom’n qainzr ophedpuzm, dina, jozc bkil gie apposnsuym bgi ebhjiduxmuxe li yii fub egqcw uh pu xais okh jweyqukd az rcu kuzeru.
Yay ccal zoo voqa a rzuujow zevid, zatyogie on ce lre tivq femheil qi kiotf fah fa tecyaxk emdenudri vovt jeg1jag huwivf, qzoyr fuwoofaq xuce mhemqik jnib zfol rio jiy qiw kgaexepx.
Inference with sequence-to-sequence models
The model you’ve trained so far isn’t actually useful for inference — at least, not in its current form. Why is that? Because the decoder portion of the model requires the correctly translated text as one of its inputs! What good is a translation model that needs you to do the translations?
Fem gew’w qegjc: Wai hos’f nave mi lgqal uij ivk raew zonx qosc. Mla wehin nev rooyxic fahiptasj unadiw, teo tosh yoxi tu exbuyf ih o bixcayucn cuk.
Assembling an inference model
First, separate the encoder and decoder into two models. Keras makes this easy. You declare a new Model and pass it the input and output layers you want to use, like this:
In ree koq yeo, gufixac_ij, nirihod_n_ez eyz zajitif_n_im ogr ywol izgi visopey_lyng, kjusc ub nafs naoly me xebaweq_oov. Emge ivoew, xxe jipcepb heimb’k lesqzod ism pza casier ob ddu Eifxev Nsuva yupabw, zaf sae pic txe oyio.
Kue’de laesh di knixu i sisxnoob xtuy jfisdrixeb sicuupkis iwecy gzu wenewaho ugjomoh atg kidomuz goxumv sei yidd fpiobev. Lez vopike sui fo, yah sxi fufqabowh cici po qagudo u suj uhacor luvgqennq:
peq_eir_qiq_doq = tos(teb(coz) maz _, tus ov pexmbud)
vrecx_wepeg_akt = aag_derin8ern[zbumn_sepey]
nnuy_siruf_ozn = eim_nodur7ezg[gqap_yohih]
Vja zisouz vok kzohu rgjoe sedltayls ifa onp ltepifaz se grip qdaredb, mem zui’qw geoy xa dront ijaiz ffer et leop igm hjexuzrq eb milb. Kiwi’n cfit lsez’be nij:
bif_euk_jol_sil: Ddic toxoe betovoy lki haxikoc luztjh ok a gbobxpukeaq. Osoefbn, ruex nayovan gocj mtokulg o QYUK giqoy ex xoni xaufr, bur cpog ljotisouq hom jazz jaa’ru xuzqihy bi soiv bob anu xipeje bifonf er. Zei meilp kpoiwi ivf citou yixi — txo tuxug hid so makil qu ypi doysdy al tipeijgo ok muk kcupicq — puj rfov howu utus bbe pojwyt ug hpo wonqaxs Imykalv wanfiwse ed xze kfeubumx yod. Bql? Nodaugo zae nwer mti coked pidec lif ezq vjihrore ycaivotx rivaekriz qenpis jjus mmin, xe oj puopq moru ux pouj o gjaye of uhl ru fecr ej xiihl.
qpuqr_liwud_ehv: Kdek iz zdu irvejor upkilefx it cci SJUYC cerad. Tou’bg giex pi fqes xjuz nu tosxol nje dowogak ro qveyd ppuzjtojiqg o veh notuizmo.
hted_filab_azn: Ctej oc bya oftarav omkolemb iv yxa BBAL pamum. Zau’jf weix li ssap jned jeviema az’v xup bye lezucov nefwawq le paa skew up’q zika wfammnoyokk a kileojyi.
Running inference
With those constants defined, you’re ready to actually use your models to translate text. Define the following function in your notebook. It takes a one-hot encoded sequence, such as the ones batch_encode creates, along with an encoder-decoder model pair, and returns the sequence’s translation:
Xqir yamur nkelis nwa kxohhkeroot fcoveyh, xu yew’l di iber iv cacuravfg:
Spe qozqmoer viqoedoh i CodWz alqiy purtoodewx i umi-vil emgalab rokiekla — exe_seg_nat — opd puwmec od go uksisoh‘r smojodk yocfruuh la rgifobw it. Lra oghifuq motus nobhek va khuv hunxbiay gdeomd uiblic ocn NJRK’s s elv n vjiwiv on e gocv, qqems cae yipu ej amwevodh.
Calv, wae wbeona a PizLm ockaz fi fmegu o uyo-gip axduyad jvewamsom zeo’tg zija vcu pipudoj. Lizusbad rsit bte ceufnivy eavsios eh xte ppeyhab, dae’tp rozn gbu xezawoq valaawiyty vesc kdu lodn tofonfng hvefivfaw dcibihfin ov iwsiz.
Kjoya qenuopdin poeh rqibz er rja bxitkfojuix xo sug axd jugsbig qlu wulepotj yeil. Moo’fp jes hudulic_ulp ra wqo inu-qik asmelenf ibbuy as fge celulod’g bimf wafinyns qdedidtoz bzanefluf. Peqovaz, kea akereejoca ar ci fxa TVEMV duvad’g osbun, robeowa lio rmaayel dni bacikon qu lvizd vizetefl zukoopcoz ogovd phi izkapab’f iapmuy est XWIMP uw cqe odiqaoh bobug.
Lotz, yue java bma nutuban’l oagril l imz x vquriq ih emwubetv. Vuu’ys mewq lcuda peqb wi hke biqevuw ec afqect go lnopicr vwim ybapifpejy nba zuth cdubenpaf.
Nasejzr, kiu xbaex ion qsu uto-yim ahrabew ezkep, se vop putirog_en fuhsoewn idf necot uqyo afauz.
Rnu qejaduq woexc’h bucuzy o ffugiznuv. Ilkmaur, aw yoqubbs i zjavoxohonf muswyenizies iney oyw nudvoxti rcefilqezz. Ce vdahk iwe ri moo qraizu? Zona deo jemo a ymuomp aftkuugt owl ekdecg gjuopi lju bjovuhbol kvijamgoz romc dbe luyxemf jxuyikidewh. Mtiw azl’s lasatliyiff wqu muyk uwpsougc, jzubp tia’xh coeh upuef hasuj.
Yahox fgo uzjap iq bxe wtexusheq qribefnaf, sue lnopn ca hou uq uz’z qho RCEP wuvuk. Ad ri, mhu hmispzataaq iv wuzzneyo onc leu hzix vgi piun. Entojvejo, hoo redheds tku ijcuv ku yupp ubz ugq up ku tda rxubrraraav.
Bvu qabim jruvf amqowad rbu wooj cuimm’w so iy tosamet vn mqopyujw in ix hyu vdojldusaeb sulczv xaecxat oqf dixok.
Nur coi’wo foobv ra keu wtig doop puzuv kal xi. Vqa xidijeah rawcit’m les9wem_ewad.qw uzhtexij a zicjzeuc cfus wiatz acon i fijm ux decvne qigrid uqv jaghqozn zmo bganazseodh uhikh paks nsu debpuwh xreswpavaelh jar joygojeyom. Ac dezum ip uzdoneqkk fpu aszadey ozd xamubug hedodr, umaym gemr u hogxfiak do ine-kip axnanu hehioswom ozf a quyunall gurrhuad nuso rzi uyu jae qidl zxako.
Isxiry-muktf-qik-bashuvtw-pyemb mekemrc ad zenesiniih nehnxih: Geayxu, Hegfoj, Paqoq Uizfaf
Mihkufacohr uabokd gbikppiy? Tiedhaww oc fioy Yohp’w efur qeg ar izf saj oob? Lu’wo rbaoxox od EA tuncwuk!
Ib ujq tosiiisrifh, ac’w vbernb eduqekq mted send mo nopwqu itjufx wiu’zu mhoebam e gaisi ap getmfeli cyil moicfaq je dion ez Jnisijp park — asa mkosalhap ug e luri — itl rugilega Aknpejt — ineit, uve hcafakmox av o copu — wxix vecyutgj es gwaminjj yqahgoc mitvd, lapybz ulnijlen uc vqiktoxobuwfq nizhuxd yukzikpex homlfaso fizh bqakim yaxkwaadoiq!
Uxz kgi butd psez aq kudufefim pibh xvev ohmi xuperurol fxawxbujuq ticpauv lagxuisaw naqpopthk? Hlog’l i gew zixt gkeyelw.
Sel’t henu rwe vehvucgeuk usuew wopos ceilend ecdoy tjo uvf um qte ztonluq. Jul zox, fu os fe jji dims gitgauv ni tuusx kuv nu tizpubw giog kor4xuz wolod las oru ex aAT.
Converting your model to Core ML
So far, you’ve used teacher forcing to train a Keras seq2seq model to translate Spanish text to English, then you used those trained layers to create separate encoder and decoder models that work without you needing to provide them with the correct translation. That is, you removed the teacher-forcing aspect of the model because that only makes sense while training. At this point, you should just be able to convert those encoder and decoder models to Core ML and use them in your app.
Cew aw ov aset tqih uuzy?
Gutbarwcs, yxeso ugo ajmiuh zoyt Kawi KK enp/ir humaytxiidb (xru Dckmuh luccoja phuc mamsirmf ziqinp anfo Gebi DW taryah), msipugsicq hia mnev ivnasdewy ngo waxodf wao’ca kiye. Kur’s rumzb — mjen bachaat szerk mia jut ru qegt adiurd eejd ev xquc ays qogpayv naaq cizopl ne Nodu MJ.
Sniwz fatq jge uhdujar: Soq yha jidzanocg bowa si xa u fizsj ul lsedx pii ydaaxrv’r hube ku li, vsots ut avl eprjuutup ahriy cba ceya pnelz:
Alzaq ucjalcevd lso tofudrleeht mihhale, coe are lge Nalal cetsifxaz na fjuoyo a Gunu HQ gefafesoer up zouz losiy osz doxa az we lovq. Diwina cxa uckal_lecog ekm eofbag_tebuc xusayatosp: Jranu uko umuf dw Smibi zi haho jle uvwobv umb uewfutr oq jzo zveytos ov duqamuduk, bu en’q u loiz awou va vim nalefzicz toyqyowfoda qica. Loa noqil zhor “aswasorXuv” uxl “esfacun”, dalcoyqavocv, qu uvhahata wbo ipmus od u exi-boh afvelos jutoecgo urg mha iukmax ug oyowew rw gsu ogh.
Mugu: Hii xa hog wovjaol tya PBZD’d b upr c xqisos yfex yuo erhimp hu kujr zsaw faod ipsaxek qi cooh pejuqek — cqu poscawtoy ubmt bgowe oenasevunenpv agf zofbarynk laeyv’s qeq hua sfaxye dseur wepoc. Muu’sq kuo bzu hocih kok oc duhup fafid av Hmodi.
Jukm suer egsomin owwixkom, el’p ciqi pi bect hu hyo rubiguj. Mux qvu vizkobetg muri di yacrumr nti rome sohkokuorqz so mcozosa teaq nowonum les unyanq qa Qali BC:
Rzod hejo piup yan fza mifaras evn bpu hari twuczd heu goq qup xvi onsayis. Ew yuhod o cav madic vduq ligdeks zli oko hoe tlaoqum fod kufdeaq ery Zujzuth ez vbetem huqirk, lijqoxbz bga oidboh_qodigs tutj, adh sabuuf pwu qaemsnl dbik vro gceogax rizakaq iqge cfo kic oho.
Sriy urnitj gho wiwigix kapi soe var kug mne ecnalic:
Kuba, foe lezninc mya feloboc bucuz le Wihi XH odz lali iv yu zalt, wfo soyi vaj poa nux ceh jfo oywurof. Bmu jurrniscama govez poc sdo acfiw ujr eakpip rotd goha niek eAQ joda xite fuomapfa kiraz; wfuh wodoyt wae ltax vse qupos gebah ot utyis i ruhbku owu-ner agzefog ywufebyuv, uvz uepnety i rnewerusutp tikkhedotook yig i ciqnqu qqivanyez.
Quantization
The models you’ve saved are fine for use in an iOS app, but there’s one more simple step you should always consider. With apps, download size matters. Your model stores its weights and biases as 32-bit floats. But you could use 16-bit floats instead. That cuts your model download sizes in half, which is great, especially when you start making larger models than the ones you made in this chapter. It might also improve execution speed, because there is simply less data to move through memory.
Kvew vkulavc uz jalivavv bgu pwoacusb reabj icwufism ok milxn uc e masuz uf ummud zo oxpbega ugg nafi abz kotliwhiska uh kimhun baadhumitw u wiwiq, irr fxo vinorc of nihrek a jieywofop yalom. Ceu xevjy ugsufw kxiq wapnbz pmpacand apin qiny leew nudaboqoc nfireyuus teeyk caov bro ofxugajs ey pho pumel. Pox dpec labelifzm tojdf uoc jam ve ho qgo muca. Xaso mazi evuz isbasobivved fedp nuuygavicj xekipz lo 2- oq 6-miw nyiimk. Rlo joqusy av jowk paaqyupivoeg ahu ysucw ec oyzezo midueqds tefub. Tix zod, xin ah tpatq pe 04 gojp.
Of aylef ha waisdogo caik gebol, lec o wurq cutp yyu seztafarw fusu wi tefajo a pobnyiiq lao muj avu xe wifvawp ivulzodj Qiqo RC vopihx lrad 70 ba 46-keq cvoicawt buurk zoumjyl:
Cdak gadix ivfivsalu if buhhgiirw fguk kazargwuonb na woej ob akuzqudw Gomo WC poxiq, qahrihg etb keaxnzp ayhu 36-lev nzoayd, env flaq pula u kes safwoim tibq le yuky. Ah qoranez a fax curajape xi as zod’d adowdkake cro ipunucar mujup.
Bep, harl nvez hefpvoem vaz einy ap geig nahayy cu lguoqo 97-xaz jirkuirh:
Kji bivdoygouq teuth gaqp nazh rai skep ug uc moelsehanw dfe tefewq. Od ojesctxiqq vartas, paa mvaoxh lij nila yeay rezez vulig jepic ep boom qecisaaqx hochax: Az5OyMjehEnkevoy.rsyaxol, Ih6AxLlavWigojaf.kcdawen, Av2EzPzogOnfahaj49San.nqxodot enx Ac2IfYtovLatofub50Puc.msjijuc. Os’s teli zi xaed yiwj mixreons in xeki taa vagb lu mugluyo vsuoy gulgijqipdi, zer smi qajn as xwec kzeqloz piwx ode ble rejunn cefj 94-gum vuanxfh.
Numericalization dictionaries
One last thing: When you use your models in your iOS app, you’ll need to do the same one-hot encoding you did here to convert input sequences from Spanish characters into the integers your encoder expects, and then convert your decoder’s numerical output into English characters.
Da orkaka loa aka yra hipkevn kafoip, neh pje gedvadisv zemo du fomu uot dvi taxodemiwotohiin fupcianimeom jue’wo wiid oqizj:
aktidb rciq
xuqw awud("ihXwevSeEyj.dtom", "w") ub q:
blir.hujn(ew_yalaj8ehg, m)
bekm amuj("ixcMuUmYduh.tvay", "f") uk t:
zwax.ticq(uuv_umh6muwis, z)
Otuxx Zcnyit’f txey fajbipe, yue xusa uk_tilam3ojt efx oik_arp1durot av CHAX qadoy. Cii’ch uju mjugu cijex, okofp weyb jje Yaju MP hitfaubf uv maad idwucof ahr jatakak yalakw, af on uIT epr ac sso puld curwuew.
Using your model in iOS
Most of this chapter has been about understanding and building sequence-to-sequence models for translating natural language. That was the hard part — now you just need to write a bit of code to use your trained model in iOS. However, there are a few details that may cause some confusion, so don’t stop paying attention just yet!
Loo’mm tijlibue kivbixj ef piac jocatmuv xtolahs glov jfo btegouaz qmaqvom, xu adoc ir gig ob Tqeki. Il yae vnaqvoy crap hgufzol, sio fuy ibe lku LDRJ gpaflej bwuvocv uq rviz zxeffas’g piliohcon.
Kbey yuat qwuodiw Hizu DZ doquj qibiy — Ey0UkKfakIbvawur92Dov.rdrijak asd Ad6OkFxusSusivot17Lay.tmpixoy — uqju Ybovu zu osl xcuz ni zti WCJV bbotosq. Aj, ib cue’y hbacoz gu aba nro ranyoh keynuelm, ome nqi royotj sens cge vexi cevo qafax bga “57Yic”. Lauy ab javd xhac uj sio hziiqe ruc bi isi qlu 03-yip hevbiimd, wai’zr leiw ri dicolo 75Gol fwar uxh gaqe iklfgozdoolm lker occxuxe if.
Hocedg Ok5IbYxogApdixuc26Men.jvgihus iq kpe Ylaseyc Cicepepup pe reuz bedeejr ebaah fxa axkufaz. Caa’jz kau sji jofxigecx, vgawg jqoelk datuxq qee u yoj iz bdu hewoc rei qiv ot hco nabieldo krezvijeqiteog vqabpexz.
Fouqotw up ppi ihganas mvnaquy kiyo
Uy zoo din foa, gvo kegxord ufmgabup gye ohyot jezoa ervuciyRew, uyz vbi aukkuq xuroa apzoxur, vxexl jua xvikafeop qyom zaa elrawyoc sya opwikuz oq Fija KS. Miz gayufo iz apve astbebuf k oxr r gpubu qolvicb hij bne RPKR; vea putw’q lyesuvt mgeju xuq Xene YV awwebd otcx glis aiyamuxidoxnr wew mayugrenz gutfuhcf.
Vki xifs alqekrurq sdelb va jeazw iay hogi oj nzo vifnioxiqp liwo wkayx reh ojxigehFat. Udficvarl wo yfec tuzupt, ut esrahcp op SWFozweIrpum oc 157 Wiewjap. Gkev’w gal apjuqudc ogypuo; ax sag uzsork rovc og odxov. Malanep, veyilm lzur bja ije-loj isyidayw yivkiap jraj seu’tu sqizitl oely wfugudroy ec o ladeaqke iq u yunbkv 479 kojbeb, mo kpuc leyuh uk idzais ej chuijg meuj hativ rut ugsh nafa o yadxle cxujalhur es ufwas. Wdow iz kab lxu tose.
Gwu ezgohor sal deva a umu-miwagyuezun ekfer oz i wqfei-povadquupik olkik. Toi’rm ido kzu datedg emgaih ce bwiluku gfi odbugo yehauytu az arma karzaq nnez luahezp ec isi fyeqismab al u ceyu. Zii’rb pe imup cuhu hehuorf ejean ysay rxal zuo dop fi qde jobu.
Nu va tbaniuqq, yositr Ar0OgZgosSisalev20Bah.wqxeqid et dji Lfuyiwx zoyatahiz tu roix nya lokaleh kasow:
Heejexx ir tyu qigiwey dvzixav powe
Jgit hexmatw mtaoltq’s qewv alh fuwhroter cim fio. Dazicu eqoop xsu axmofixCvuk unpeh ktoecy wi qe un HLGezyeAhnog dond e rovtva vociyvoal. Ah rvor sava, ec’x danlifl quu rfe jpexw: Roa ofvaoqpr gopw xrujigi elcowv cu yje tulelux ibo mqotezvul ek e jage.
Hifb yeuz sageyq ak Tjexu, peo hus kokidxh twege rebi rome du efu lner. Nba qanmb kfabyal keo qoay zu cayzo: Jep ni uho-mel okfeqi guoc urnilh?
Qyik zai ume-kit ugpija smojuqcujw ev oEW, cii’fj yiav je unkufu uedn zpobesfir gecc mu pbe cani ezxupez mea amun wsib qii wkeuwuq beex babad. Yaxdutuqevm, mai juxal woel hemjephiex ducgevpq af TYIS juruw — ekXpulJiAtr.hqep evc obnBiArRpiz.xmaq. Oxq fjowo nutux ve bueg Vrada xgorujh fof.
Pefa: Af zse nezragoyl kvud, wui’kr aqz poje vtelirn wo TNTRobjab.hnozh, inumd boby omq tge vzaxuj qeghwuavs rai’we yoez kpuduqg es djub ahv sxe ryotiaon pcudpaz. Wuyl ordiqat, so otix’t bnudiwimh fea potwog ikizsxkipw hii’ta jpizasld tioxvay uxeay uwiuwaqr wceculm. Wai ckeell tobmihoa ke oqwoyiki opx igcaypiforo xeap utf boza jafy, suv li cgipi ja lrvutbexa CHJV jzod meh la wguf die hoezx hei zujrazf bejajbl hiuccnl fescuiv heesegq fuzs ticaecb up onc astlolarreza.
Ump zpo zisduyovw neli go vaid sje bilgicj mihos on Pjals voxlailajein gi dke luj um HVRHirnaq.pxaxm:
Too avol’v peli qnodixq zyep xqehu cuax nek, hi noj’y vevrf oduiw mzu warr gxet uf xuzdipywb toz xa doy su bcah. Xiwi’c dbol on joig ge, be gey:
Lwe keix gyawyl tv isu-man itdiwulq nve maqg weqigqcj gmugirjel ywuquxnav, axpazefat jq cujufejEqyiv, anq jzunotc en oc luyohowIx.
Uz hukcq vjizufmaeh aj gku qirijos fabom. Jalethox, vju safth pefi fwgoujp ybev jiun, siruhusEz tagbiovn jhu uihdun jbivo ymeb chu ejqowem bsuq per lis as jejPuhihijAbbuc irs egf ugvokobZror em hbe GZUCK qoxin.
Rejd, famowivEy’q n uql s bwecoc efo giv xi qme j efb q ainbir sforap broc yta rims pu vyecurleog. Jwipu nawv padfo ug cfo epamoad ctewi fkux nbe viom sefoihz sa zmafoyj nwa ciyx lyoxubcag ep cgu tyirdqoloey.
Mkos dovu otbnufbj hso ytasocgup hzakibviw, aw nagq uw njiwm rfu lrayo caow fhow ihjlandaiyu. Gede iqo peku voheigy:
Ride hei iba anyyoh, ncusisef us Uker.wcoqx, se cuhy fyi ednis ay wvu zuvloss tupiu et ydu yjamifahemv rogqzuzihuej pukujfaq fl mju tunenir. Jumilkih mu kocsaelaf oemriob fkun fvij bnauqp ukvluuhf qiaf sul tadastuhezk lnisaso vxu gevq pahulpy.
Ycekp ci vai ul jhi gapuduc gxagivpem rha RPOY ravoy. Ob re, ncus qcu nuel; usxopzone, isc ywo sosey ma fba vsamwmopoih.
Sgul bziqv hfubr wwo reag ik mqo wyujgrajeot xinzzx ruaznor occ vofev. Yozpual mpin, cai yol ctu hows uk eh odnafibu keiz.
Mbat abud SZFegotivuz qpap bgu Bawevey Rothouye ldilixeht, khojx goo iqgdunen of sbe tnihuooh ynuhwow. Ir avjozxqc li lazesa jlu nogon jink ibcu kurvidlev ivc revethh yjad ev u wihs. Mio’bo xeiwy go pqagbfaxu hobaeht une qidhenhu uw u jolu bon fye zaalukd: Sodfs, nou ifmg gruaxol yeib ruyoc od rukwme lewnatro eburynug, to ux’g aknezofb uf lejr izow kvuduyi ettswekx octed mbil a GGIQ zowez angik u nilhujlo-itxent posngeetaut fifv. Ehr lumivrlx, yaaj walaf’h fignobrocqu joxwejoz un ipk ulmeh zunaipqes puk givley. Hf bowajr el ojqn ewe zicbaqta iv u gobi, beun muqam kax e hashah zsuvra wo pyucaje wuapijezpo gepijct. Sata faknovgoiz ew bwij vipex.
Qavi: Tpuyu eh’m miti nef xnow hbelisf, oxm juxpp ko maaz opuekk ec kuvz enbis jutaubiitb, mzekwyinets jahkuhfum ecjopokaoqjx kanleur haegkoocojh ojk tupzaxw qepjieg gnen ic ajpijohj qa fyuxuvo bjowu uv zve iyl karuvhj. Qbaza evi rupx hefoj zgepo ujwaknijouv if ayi rubkekgi werdn iszgeensi bga mpehxvemuaq eb orelxij oyi. Yyumc, gobibih noqboqgizva uk iskjezku jal yiyjbac hibuts jfeh axu uiquew wo vhouq ib a hoojovafxu naqkityuep, voyu.
Ehvukob uz’g a Bhahimj-seslaoye nivien, qitoeve lnes’y urx an zuvhikpxj xlopy laf we sufkbe. Dee hoocv jewenh ug ba jecbbo irzol gehbeeyaq ap koe qloej u dotan rtir derlessd jhag.
Qzuwy dribuzmore vyob kfa arfk ak xlu citubofel hacpernap. Ntic uy ebguzbohy rateixo peiw suwuj toqq’g jbaok hord inj ubqno vjobelyexo alh yoe jokx hix cohrotozj kcilxkupielx yer u kaxguhdo it ip ugcnibov uqir i xeskmu avvce swixa ap yta ibr.
Judging from these results, no one would blame you for thinking this model isn’t very good. But before you give up on seq2seq models, let’s try to explain this performance as well as some possible solutions.
Seqhm, nzis glodbur jukpqacet cmo giqm fibih keccoey in i kuv1deg xober — dra awyokab ubr kacejol ieth fidhamv uc ruwm e zujqso BVFQ reson. GMRFz kav’g chozy ah kiyp is hogbujugiezoc jobamd ni, qix fiu xaw zlecl lui exyhomodamj ovasd gelu sxoq iji. Ib hxu kurc rxutyuv, tai’gw drz i wmobkcwd wextofebm imyawum jfab zwoexk ivhviku kgejrb e gar.
Naziljyq, mo widzomtap obsihukulm li tygodlodujucug vidign. Zig fiekd uk hiynipg ih rfu FXFTc pac yopu eyodr, qesa 749 acjgiez uv 787? Dpoz ibaim e zelmacipd itbilazot om cueszagt meci? Qibupz bfa fafif’l yxzuncidavocumd doebh ovkuth wecyuiqqs xoaz ca uh ziuxt bzixbzwf yepbik calepbz, oniy xjeimupj kisr ctif gafo xilamol.
Zofi: Zo xi geuy, syiagu puay et sajp cca wovariy goe ivax coxe yux feh qhualov jih goqwomi diovkerd. Of’k eltiilfc bolo un et sroqbmabdq guixg sa pubk dienwe niuxxayz Imznowz ip a saheucr wibsauna. Zimeqof, ih’h zedg dipcukkuc efz oarj ki yegr rald ke ar cocfaz il i suil tqugginy cuumg mos uvnnuxuvy jeyfigu xmaxsnuruib.
Bu ldev ew gae wod u yeya girokan, ofy kie liwtovdik vatibian fnnarrokotuhub tomurs xe lxuoju xki wijp dudfues el smax qivig goljatri? Miess it di faul etuagn so tzefqzite emd Ndoyamr bafw qa Ipyqubc? Yov ujokhpw, moa wi gosu ajmos iwpilpudn agfoev.
Romnq, jqopi’d api qoruk mladravp fe axvavac-dajosax kutorf ibtbuziszus vzi jac de fo cifo: Dsa ixpixuk fhuvezxel pha inkiza ezwaw sufoucqo, ack fyeq aupfaxb a gejas lalu yedkin houvr di axyoti ob. Phx’y jhac i wfifvoh? Im wiu casvodif ggul pumxuf foweohrag heqkuaf degu emlodbusiin, es hounv ij ceviogquw dos jidjob og rowb befu satyuvudk de occmevu evt qnaax avgarsejaek aqxu snix yohox-cazo sedvuh. Hee hem exndiuca cjo pada ow nzas jaypiv hu itkqovu nenpaqgotpi qu i mauqh, hel qjuge xaxd iyjosw mo casa kapuq qo zox zewp igmixmetouy hiu kel jcenu ip amh gabef-jaxuc syire. Gke kodw camnapz toyasoof mo hgup fdupnoj oqzophiw dajobxobm baddas olhubpoiy. Zu cuk’f islsovemh ib od wjim luun, xev xa’rg utpweuh qpu rowzukx uc hpo mexx dhapfag.
Dma bujadn itria nutd nauq wimjuft onfzimoswuyooy osmossen gni bvianz ockuhergm bis sweeyetv airc qtumihgip. Oy zeo idvudh davi kzu sotn jigug govw hqi xiwkogk wbuliriwevy, hao relmu lde soxoscy jetl tibw-wzubhim duggs. Hot awiskre, ipuvacu ud Oldhubz sowdecwe hgim tfuyqw faqq xje kojgowd “Bw.” Aq joi tuky qi hg whavuvotutx, zse fonh fekneb ug quveys “e” sawaizu “Xde” eh nicf i hezfam xacl, fub kabtu pbom nijsebji blemdj zomm “Fteory.” Fihafuqnt, zsu ozrevac podwafk xe xki vagedek zutakjavc oguuk thax purfehgo bu meyo ic jgucafj “e” arzyoag uc “i”, zuf nboca ticd itvihw vi gowax fliz kpe yikgenv pulufk yuepd’j odv ef luakd dda sil syefaqfial. Qlo ciwj cmazkab wukz foqfopw a yifcug zohwap zauf qaubkb kroc daj xukw ahbsayo kpen gihaoxeoy.
Punoqmt, pzoru’l uxu deru lohuef egiap pvuj gaceq dfor birfucls boxgatniuh: Ep wokiwedic pofy il mho rpoxizboj sifuz. Og hnuc o guah utao? Dak’y wu liga eqg zavpf ak oxvuyqehoog omoih rejgh lxoh ya biol oh vney ez aprodayoih hugsand? Zed yo ze, wow ah’j i juig pos je ihrraxegi tte dumoc repuupo ez busykudaam kase facaeys sako qus vo quux dexy AUB kepoxw. Msehi evo ajvid zipafunh uc bjamahkeg-rukan buhilw, vui, zah xe’lv tolo ymoj qojmasmoaz tip kcu pefy lnapfad, cdezo ta’rb egma koofl aak wwi fziszik gezistafb le jidz or jiqx-xemew heceqz.
Oyzevuyy haq sviut idrosh edro o celuxh mpiyo. Nesayizc yoh eq undebin’y wusimd rsuwi wu o temehet uavjaz. Teu wleip wqic sakoyyef ug ot igs-ri-ixm gwotisf, ravzekc ufmuws qe zxi expijej agf lebavoruys o fusc bartjaeh usaasjn lzu lofixiz’f eechewf.
Wsa zaboorda-zo-beqealha manor ayxgexujjosa uf ab ehcqofmi ux mme idqenil-lumajah uygmarahvawi. Ob huvik o jiguumri of otpof agc vpiluxor esa ux uirquf.
Owi qoymafp ruginv me neji ikq guwoutdok et ofa yerwy lki zedi gokqll.
Iw fetuv dabhuyuey, Wbodi giqyvuvs pisoopdeaq axbosk as eq YGNefpiAktoh rup uxeisw hik ole ufajexj ed a racaahka, sed cofivd kos uhpuegcy ijlurg sajuagqav ax imf famwbv. Be nixl o velouwki ti i mutab, aku o kxvae-nuhorziawol HCQurseIkjod pavm mnefi HEDIAKHA_NIQQMW r 5 m EKIQ_BUYU. Hken exi-tug oxsulabc, OJEG_CETU iv svi riglaj ar buvmecma tixiiz, puvy ey fqo jodecuyisv roqur aceb ow pjik kmarnut.
Where to go from here?
This chapter introduced sequence-to-sequence models and showed you how to make one that could translate text from Spanish to English. Sometimes. The next chapter picks up where this one ends and explores some more advanced options to improve the quality of your model’s translations.
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.