I'm notgonnagointowhatthatmeans, butit's a muchsimplerwayofprogramming.
Andactually, mostofthemachinelearningworldismovingtowardsthiseagerapproachversus a graphbasedapproachwhereyouactuallystitchedtogether a computationgraphandexecutedlater.
Wereallywantedtobeeasy, sowemovedtowardseager.
Wealsoprovide a highlevellayers, a p i, whichisah, setofbestpracticesinthemachinelearningcommunity.
Soyoudon't havetothinkaboutallthedetailsofyourlinearalgebrawhenyou'reconstructing a model.
Andwealsoprovide a wholerepositoriesofpretrainedmodelsthatrequireszerounderstandingofmachinelearningtogetstarted.
And I'm gonnashowyou a coupleofexamplesofthosein a second.
And I wanttohighlightthis.
Wefocusonperformanceoneandwhereitmatters.
Obviouslywewantmatrixmultipliestobefast.
Whatwedidwaswetookindividualmodels, andwefiguredouthowtomakethoseindividualmodelsfasteron a usecasespaces.
So, as I said, wedon't wanttoactuallymakethelibrarylessfunctional, Sowesupportradiance.
Weactuallybindwiththe n a p i totensorflow c++, andwhatthatmeansis, ifyouusethatsame a p i foranyofthesethings, youimmediatelygetthehardwareaccelerationthatTensorflowhasbeenworkinghardonfortheCPUandFergieabusewithKotaandeventuallywe'regonnahavetpsupport.
Sothisis a lotoffun, andwe'llshowyouhowtouseoneofthesemodelsin a minute.
Thesecondmodelisverysimilartopose.
Netisdoingpersonsegmentation.
Soit's, youknow, thisbackgroundlittlefunny, butbasicallywhatitdoesisitdraws a maskoftheonewhereitthinksis a humanposing a zerowhereitdoeswhereitthinksthere's not.
Sothisiswhatthisone's a lotoffun, and I don't knowifthisisgonnashowwell, here, butoneoftheeffectsthatreallylikehisportraitmode, youcanseethisthingblurring.
Sowehave, youknow, a softcorebaseportraitmodethat's runningdirectlyinthebrowserprettyfast.
Sofirst, wejustloadthemodelwecallawaitbodypicksoutload, andthisisgonnadownloadallofourweightstheseways, wehoston R G C P bucketsforyou, soyoudon't havetopayforanyofthat.
Andthenyoujustcallonelineofcodeestimatepersonsegmentationontheimageandyouget a Jasonobjectout.
AndinsideofthatJasonobjectis a binarymaskofwhereitthinksthekidisthatisthatsimple?
Soyoucanimaginethisbeingusedfor, like, a videogameSprite.
Youjustjumparoundonscreenandyouimmediatelyhave a funvideoagainst, Right?
Okay, so I don't havetoexplainthistopeopleintheroom, butJavaScriptrunsin a tonoftownofplacesandwe'reworkinghardtogettensorflowJessworkinginthoseplaces.
Sowhenyou'reabouttoupload a profilepictureiftheysee a licenseor a governmentissuedpassportsinthatinthatphotowillyellatyoubeforetheyuploadtotheirserversotheydon't havetoownthat p i onthebackendontheonthedesktopandnode, there's a projectcalledclinicdoctorandclinicDoctoris a projectthatmountainmonitorsyournoteapplicationfor a seaviewspikes, andtheyusetensorflowdressactuallytodisambiguity, garbagecollectionspikesfromyourCPUinyourinyouractualprogram.
Oneofmypersonalfavoritesis a projectcalledMagentaStudio.
Magentais a teamatGooglethatdoesgenerativemusicandart.
Andtheyactuallyhaveanelectronupthatplugsdirectlyinto a Boltonlive.
Anditcangeneratemanynoteson a trackforyou.
Oritcangenerate a drumbeatalongside.
Maybe a guitargrewthatyouhave.
Sothisis a tonoffunandaugmentsanexistingworkthroatourworkflowAnd, youknow, Javascriptisawesome.
Togoaswekindahighlighted, um, JavaScriptrunsin a lotofplaces, andwe'restartingtothinkofareaswherewecankeepexpandingwhereyoucanruntensorflowJsum I wanttostepbackandtalkaboutournotebindingsfirstbeforewediveintothenexttopic.
Welaunchedtheseabout a yearago, andthelibraryisgreatbecauseit's superfast.
Usesthat c librarylikenickelmention, Um, andit's greatfordeployingontheservers.
They'redoinglocalworkflowsonyourdesktoporworkstation, butthereare a fewdownsides.
IsparticularlibrarywehaveoneofthemistheGPU.
AccelerationrequiresinvidiousCudaLibrary.
It's a reallyfastlibrary, butit's verylarge, andweatTensorflowdon't currentlysupportMacOS, sothere's noGPUaccelerationofmath.
Andtheotherthingis, thenodepackageitselfis a nativemodule, allbuilton N a P I.
Soit's a verylargepackagetoship, sowestarttothink, Istheresomethinginbetween?
Wecoulddo a note, andwestartedworkingreallyhardandlaunchedearlierthisyear, a newheadlessgraphicstackfornoteandwelauncheditscalledtheNoDash T l E s package.
Weworkhardwiththeproteinheretobuild a headlessgraphicstack.
Forthat, wewantedtotakethatandaccelerateourexistingWeb G l stackallheadless, unknown.
Soonwindows, it's directthree D opengeoonwindowsandinyournativeMacOSgraphicstackimplementation.
Soyouthinkthisisgonnabegreatforsomedesktoppapslikeelectronmobileandembeddedspaceandinah, I OTdevices?
Plus, thisisgoingtobringGPUaccelerationtoMacOS.
Um, we'reworkinghardtofinishthisup a coupleofthings.
Sowe'rehopingthelaunchherelaterinJuneorsometimethissummer, and I wanttoshow a demoofthisactuallyrunning.
Um, webuilt a reallyquickelectronapp, Soif I goaheadandjustrunmyass, thisappusesmobilenet, whichisoneofouroutoftheboxmodelsthatdoesbasicimageclassificationssoyoucanseeanimageandtellyouwhatitis.
Itdoesn't blockyou'reyou I threadfordoingallthedisplays, yourdispatching, allthesemlcallsthroughthenoteprocess, allwith a headlessdeal, andthatpackageislike 5 to 10 megabytes.
It's verysmall, and I alsowanttoshowoneotherthing.
Um, thisisthelatesttypeofiotiboards.
Thisisah, invideo, JetsonNanoandbasicallyjusthas a bigGPUstapledtothetopofit, andwewereabletolastweekatthisrunningwiththisheadlessstackaswellrunningthatsamemodel.
Ah, nocounseldump.
Isitthatmostexciting?
Butwe'redoingaround 76 millisecondsofinferencetime, justwiththeverythin, um, arm 64 buildofournotebackin.
Thisbasicallyallowsyoutolookatthosecomplicatedopslikeconvolutions, whichdo a bunchoffiltersonyourimagewhileyou'retrainingandseewhat's happeninginbetweeninchofthoseconvolutions.
Andthatsortofshowsyouwhereyourmodelismightbeoverbiastoparticularclassinwaysthatyoucansortofseehowyoumightalteryourdatasettomakesureyouhave a verynicelytrainmodel.
Allright, we'vebeentalkingaboutturning a lotofstuff, butwewanttoshowyou a lotofthethingsthat, um, theykilledmyselfandtheteamhavebeenthinkingaboutwherewe'regoingforwardwiththeproject.