To je skupna objava, ki sta jo skupaj napisala AWS in Voxel51. Voxel51 je podjetje, ki stoji za FiftyOne, odprtokodnim kompletom orodij za izdelavo visokokakovostnih naborov podatkov in modelov računalniškega vida.
Maloprodajno podjetje gradi mobilno aplikacijo za pomoč strankam pri nakupu oblačil. Za ustvarjanje te aplikacije potrebujejo visokokakovosten nabor podatkov, ki vsebuje slike oblačil, označene z različnimi kategorijami. V tej objavi prikazujemo, kako spremeniti namen obstoječega nabora podatkov s čiščenjem podatkov, predprocesiranjem in predhodnim označevanjem z modelom razvrščanja z ničelnim strelom v Enainpetdesetin prilagajanje teh oznak z Amazon SageMaker Ground Truth.
Za pospešitev projekta označevanja podatkov lahko uporabite Ground Truth in FiftyOne. Ponazarjamo, kako neopazno uporabljati obe aplikaciji skupaj za ustvarjanje visokokakovostnih označenih naborov podatkov. Za naš primer uporabe delamo z Nabor podatkov Fashion200K, izdano na ICCV 2017.
Pregled rešitev
Ground Truth je popolnoma samostojna in upravljana storitev označevanja podatkov, ki podatkovnim znanstvenikom, inženirjem strojnega učenja (ML) in raziskovalcem omogoča ustvarjanje visokokakovostnih naborov podatkov. Enainpetdeset by voxel51 je odprtokodni nabor orodij za kuriranje, vizualizacijo in vrednotenje podatkovnih nizov računalniškega vida, tako da lahko urite in analizirate boljše modele s pospeševanjem primerov uporabe.
V naslednjih razdelkih prikazujemo, kako narediti naslednje:
- Vizualizirajte nabor podatkov v FiftyOne
- Očistite nabor podatkov s filtriranjem in deduplikacijo slik v FiftyOne
- Očiščene podatke vnaprej označite z zero-shot klasifikacijo v FiftyOne
- Označite manjši izbrani nabor podatkov z Ground Truth
- Vnesite označene rezultate iz Ground Truth v FiftyOne in preglejte označene rezultate v FiftyOne
Pregled primera uporabe
Recimo, da ste lastnik maloprodajnega podjetja in želite zgraditi mobilno aplikacijo, ki bo uporabnikom dajala prilagojena priporočila za pomoč pri odločitvi, kaj obleči. Vaši bodoči uporabniki iščejo aplikacijo, ki jim pove, kateri kosi oblačil v njihovi omari se dobro ujemajo. Tukaj vidite priložnost: če lahko prepoznate dobre obleke, lahko to uporabite za priporočilo novih kosov oblačil, ki dopolnjujejo oblačila, ki jih stranka že ima.
Za končnega uporabnika želite čim bolj olajšati stvari. V idealnem primeru mora nekdo, ki uporablja vašo aplikacijo, samo fotografirati oblačila v svoji garderobi, vaši modeli ML pa bodo v zakulisju delali svojo čarobnost. Lahko usposobite model za splošen namen ali natančno prilagodite model edinstvenemu slogu vsakega uporabnika z neko obliko povratne informacije.
Najprej pa morate ugotoviti, katero vrsto oblačil uporabnik zajema. Je srajca? Par hlač? Ali kaj drugega? Navsezadnje verjetno ne želite priporočiti obleke, ki ima več oblek ali več klobukov.
Za reševanje tega začetnega izziva želite ustvariti nabor podatkov za usposabljanje, sestavljen iz slik različnih kosov oblačil z različnimi vzorci in slogi. Če želite ustvariti prototip z omejenim proračunom, morate zagnati z uporabo obstoječega nabora podatkov.
Za ponazoritev in vodenje postopka v tej objavi uporabljamo nabor podatkov Fashion200K, objavljen na ICCV 2017. To je uveljavljen in dobro citiran nabor podatkov, vendar ni neposredno primeren za vaš primer uporabe.
Čeprav so oblačila označena s kategorijami (in podkategorijami) in vsebujejo različne uporabne oznake, ki so izvlečene iz izvirnih opisov izdelkov, podatki niso sistematično označeni z informacijami o vzorcu ali slogu. Vaš cilj je ta obstoječi nabor podatkov spremeniti v robusten nabor podatkov za usposabljanje za vaše modele klasifikacije oblačil. Podatke morate očistiti in shemo označevanja razširiti z oznakami sloga. In to želite storiti hitro in s čim manjšo porabo.
Prenesite podatke lokalno
Najprej prenesite datoteko zip women.tar in mapo z oznakami (z vsemi njenimi podmapami) po navodilih v GitHub repozitorij nabora podatkov Fashion200K. Ko ste oba odpakirali, ustvarite nadrejeni imenik fashion200k in vanj premaknite mape z oznakami in ženskami. Na srečo so bile te slike že obrezane na omejevalna polja za zaznavanje predmetov, tako da se lahko osredotočimo na klasifikacijo, namesto da skrbimo za zaznavanje predmetov.
Kljub oznaki »200K« imenik žensk, ki smo ga ekstrahirali, vsebuje 338,339 slik. Da bi ustvarili uradni nabor podatkov Fashion200K, so avtorji nabora podatkov preiskali več kot 300,000 izdelkov na spletu in samo izdelki z opisi, ki vsebujejo več kot štiri besede, so se uvrstili. Za naše namene, kjer opis izdelka ni bistven, lahko uporabimo vse preiskane slike.
Poglejmo, kako so ti podatki organizirani: znotraj mape za ženske so slike razvrščene po vrsti artikla najvišje ravni (krila, majice, hlače, jakne in obleke) in podkategoriji vrste artikla (bluze, majice s kratkimi rokavi, majice z dolgimi rokavi). vrhovi).
Znotraj imenikov podkategorij obstaja podimenik za vsak seznam izdelkov. Vsaka od teh vsebuje različno število slik. Podkategorija cropped_pants na primer vsebuje naslednje sezname izdelkov in povezane slike.
Mapa z oznakami vsebuje besedilno datoteko za vsako vrsto artikla najvišje ravni, tako za razdelitve usposabljanja kot testa. V vsaki od teh besedilnih datotek je ločena vrstica za vsako sliko, ki določa relativno pot datoteke, oceno in oznake iz opisa izdelka.
Ker nabor podatkov spreminjamo, združujemo vse slike vlaka in testne slike. Uporabljamo jih za ustvarjanje visokokakovostnega nabora podatkov za posamezne aplikacije. Ko končamo ta postopek, lahko naključno razdelimo nastali nabor podatkov v nove delitve vlaka in testa.
Vnesite, si oglejte in pripravite nabor podatkov v FiftyOne
Če tega še niste storili, namestite odprtokodni FiftyOne z uporabo pip:
Najboljša praksa je, da to storite v novem virtualnem okolju (venv ali conda). Nato uvozite ustrezne module. Uvozite osnovno knjižnico fiftyone, FiftyOne Brain, ki ima vgrajene metode ML, FiftyOne Zoo, iz katerega bomo naložili model, ki nam bo ustvaril oznake zero-shot, in ViewField, ki nam omogoča učinkovito filtriranje podatki v našem naboru podatkov:
Prav tako želite uvoziti modula glob in os Python, ki nam bosta pomagala pri delu s potmi in ujemanjem vzorcev v vsebini imenika:
Zdaj smo pripravljeni naložiti nabor podatkov v FiftyOne. Najprej ustvarimo nabor podatkov z imenom fashion200k in ga naredimo obstojnega, kar nam omogoča shranjevanje rezultatov računsko intenzivnih operacij, tako da moramo omenjene količine izračunati le enkrat.
Zdaj lahko ponavljamo skozi vse imenike podkategorij in dodamo vse slike znotraj imenikov izdelkov. Vsakemu vzorcu dodamo klasifikacijsko oznako FiftyOne z imenom polja article_type, ki ga zapolni kategorija artikla na najvišji ravni slike. Dodamo tudi informacije o kategoriji in podkategoriji kot oznake:
Na tej točki lahko vizualiziramo naš nabor podatkov v aplikaciji FiftyOne tako, da zaženemo sejo:
Z zagonom lahko natisnemo tudi povzetek nabora podatkov v Pythonu print(dataset)
:
Dodamo lahko tudi oznake iz labels
imenik do vzorcev v našem naboru podatkov:
Če pogledamo podatke, postane jasno nekaj stvari:
- Nekatere slike so precej zrnate, z nizko ločljivostjo. To je verjetno zato, ker so bile te slike ustvarjene z obrezovanjem začetnih slik v omejevalnih poljih zaznavanja predmetov.
- Nekatera oblačila nosi oseba, nekatera pa so fotografirana sama. Te podrobnosti so zajete v
viewpoint
nepremičnine. - Veliko slik istega izdelka je zelo podobnih, zato vsaj na začetku vključitev več kot ene slike na izdelek morda ne bo dodala veliko napovedne moči. Večinoma je prva slika vsakega izdelka (konča se s
_0.jpeg
) je najčistejši.
Na začetku bi morda želeli usposobiti naš model klasifikacije stilov oblačenja na nadzorovani podmnožici teh slik. V ta namen uporabljamo slike naših izdelkov v visoki ločljivosti in omejimo pogled na en reprezentativen vzorec na izdelek.
Najprej filtriramo slike nizke ločljivosti. Uporabljamo compute_metadata()
metoda za izračun in shranjevanje širine in višine slike v slikovnih pikah za vsako sliko v naboru podatkov. Nato zaposlimo FiftyOne ViewField
za filtriranje slik glede na najmanjše dovoljene vrednosti širine in višine. Oglejte si naslednjo kodo:
Ta podnabor z visoko ločljivostjo ima nekaj manj kot 200,000 vzorcev.
Iz tega pogleda lahko ustvarimo nov pogled v naš nabor podatkov, ki vsebuje samo en reprezentativni vzorec (največ) za vsak izdelek. Uporabljamo ViewField
še enkrat, ujemanje vzorcev za poti datotek, ki se končajo z _0.jpeg
:
Oglejmo si naključno premešano vrstni red slik v tej podmnožici:
Odstranite odvečne slike v naboru podatkov
Ta pogled vsebuje 66,297 slik ali nekaj več kot 19 % prvotnega nabora podatkov. Ko pogledamo pogled, pa vidimo, da je veliko zelo podobnih izdelkov. Hranjenje vseh teh kopij bo verjetno samo povečalo stroške našega označevanja in usposabljanja modelov, ne da bi opazno izboljšalo učinkovitost. Namesto tega se znebimo skorajšnjih dvojnikov in ustvarimo manjši nabor podatkov, ki ima še vedno enako moč.
Ker te slike niso natančni dvojniki, ne moremo preveriti enakosti slikovnih pik. Na srečo lahko uporabimo FiftyOne Brain, ki nam pomaga očistiti nabor podatkov. Zlasti bomo izračunali vdelavo za vsako sliko – nizkodimenzionalni vektor, ki predstavlja sliko – in nato poiskali slike, katerih vdelani vektorji so blizu drug drugemu. Bližje kot so vektorji, bolj so si slike podobne.
Uporabljamo model CLIP za ustvarjanje 512-dimenzionalnega vdelanega vektorja za vsako sliko in shranimo te vdelave v polja vdelav na vzorcih v našem naboru podatkov:
Nato izračunamo bližino med vdelavami z uporabo kosinusna podobnost, in trdijo, da sta katera koli dva vektorja, katerih podobnost je večja od nekega praga, verjetno skoraj dvojnika. Ocene kosinusne podobnosti so v območju [0, 1] in če pogledamo podatke, se zdi, da je mejna vrednost thresh=0.5 približno pravilna. Še enkrat, ni treba, da je to popolno. Nekaj skoraj podvojenih slik verjetno ne bo uničilo naše napovedne moči, zavrženje nekaj nepodvojenih slik pa ne vpliva bistveno na zmogljivost modela.
Ogledamo si lahko domnevne dvojnike, da preverimo, ali so res odvečni:
Ko smo zadovoljni z rezultatom in verjamemo, da so te slike res skoraj dvojniki, lahko izberemo en vzorec iz vsakega niza podobnih vzorcev, ki ga obdržimo, druge pa zanemarimo:
Zdaj ima ta pogled 3,729 slik. S čiščenjem podatkov in identifikacijo visokokakovostne podnabora podatkovnega niza Fashion200K nam FiftyOne omogoča, da omejimo fokus z več kot 300,000 slik na nekaj manj kot 4,000, kar predstavlja zmanjšanje za 98 %. Samo uporaba vdelav za odstranjevanje skoraj podvojenih slik je zmanjšala naše skupno število obravnavanih slik za več kot 90 % z majhnim ali sploh kakršnim koli vplivom na modele, ki jih je treba učiti na teh podatkih.
Preden vnaprej označimo to podmnožico, lahko bolje razumemo podatke z vizualizacijo vdelav, ki smo jih že izračunali. Lahko uporabimo vgrajeno FiftyOne Brain compute_visualization(
), ki uporablja tehniko aproksimacije enotnega kolektorja (UMAP) za projiciranje 512-dimenzionalnih vdelanih vektorjev v dvodimenzionalni prostor, da jih lahko vizualiziramo:
Odpiramo novo Plošča z vdelavami v aplikaciji FiftyOne in barvanje glede na vrsto artikla, in lahko vidimo, da te vdelave približno kodirajo pojem tipa artikla (med drugim!).
Zdaj smo pripravljeni vnaprej označiti te podatke.
Če pregledamo te zelo edinstvene slike visoke ločljivosti, lahko ustvarimo spodoben začetni seznam slogov, ki jih bomo uporabili kot razrede v naši klasifikaciji zero-shot pred označevanjem. Naš cilj pri vnaprejšnjem označevanju teh slik ni nujno, da vsako sliko pravilno označimo. Namesto tega je naš cilj zagotoviti dobro izhodišče za človeške označevalce, da lahko zmanjšamo čas in stroške označevanja.
Nato lahko za to aplikacijo ustvarimo model klasifikacije brez strela. Uporabljamo model CLIP, ki je splošni model, ki se uri na slikah in naravnem jeziku. Instanciramo model CLIP z besedilnim pozivom »Oblačila v slogu«, tako da bo glede na sliko model izpisal razred, za katerega najbolj ustreza »Oblačila v slogu [razred]«. CLIP ni usposobljen za maloprodajne ali modne podatke, zato to ne bo popolno, lahko pa vam prihrani stroške označevanja in opomb.
Ta model nato uporabimo za našo zmanjšano podmnožico in rezultate shranimo v article_style
polje:
S ponovnim zagonom aplikacije FiftyOne lahko vizualiziramo slike s temi predvidenimi slogovnimi oznakami. Razvrščamo po zanesljivosti napovedi, tako da si najprej ogledamo najbolj zanesljive napovedi sloga:
Vidimo lahko, da se zdi, da so napovedi z najvišjo stopnjo zaupanja za sloge "džersi", "živalski tisk", "polka dot" in "črke". To je smiselno, saj sta ta sloga relativno različna. Prav tako se zdi, da so napovedane slogovne oznake večinoma točne.
Ogledamo si lahko tudi napovedi sloga z najmanjšim zaupanjem:
Za nekatere od teh slik je ustrezna stilska kategorija na predloženem seznamu, oblačilo pa je napačno označeno. Prva slika v mreži mora biti na primer jasno »kamuflaža« in ne »šivron«. V drugih primerih pa se izdelki ne prilegajo natančno v kategorijo sloga. Obleka na drugi sliki v drugi vrsti na primer ni ravno »črtasta«, toda glede na enake možnosti označevanja bi bil lahko tudi človeški označevalec v sporu. Ko gradimo naš nabor podatkov, se moramo odločiti, ali odstraniti robne primere, kot so ti, dodati nove kategorije slogov ali povečati nabor podatkov.
Izvozite končni nabor podatkov iz FiftyOne
Izvozite končni nabor podatkov z naslednjo kodo:
V mapo lahko izvozimo manjši nabor podatkov, na primer 16 slik 200kFashionDatasetExportResult-16Images
. Z njim ustvarimo prilagoditveno opravilo Ground Truth:
Naložite revidiran nabor podatkov, pretvorite obliko oznake v Ground Truth, naložite v Amazon S3 in ustvarite datoteko manifesta za opravilo prilagajanja
Oznake v naboru podatkov lahko pretvorimo tako, da se ujemajo z izhodna shema manifesta opravila omejevalnega polja Ground Truth in naložite slike v Preprosta storitev shranjevanja Amazon (Amazon S3) vedro za zagon a Delo prilagajanja Ground Truth:
Naložite datoteko manifesta v Amazon S3 z naslednjo kodo:
Ustvarite nalepke s popravljenim slogom z Ground Truth
Če želite svoje podatke označiti s slogovnimi oznakami z uporabo Ground Truth, dokončajte potrebne korake za začetek opravila označevanja omejevalnih okvirjev, tako da sledite postopku, opisanemu v Kako začeti z Ground Truth vodnik z naborom podatkov v istem vedru S3.
- Na konzoli SageMaker ustvarite opravilo označevanja Ground Truth.
- Nastavite Lokacija vhodnega nabora podatkov biti manifest, ki smo ga ustvarili v prejšnjih korakih.
- Določite pot S3 za Izhodna lokacija nabora podatkov.
- za Vloga IAM, izberite Vnesite vlogo IAM po meri ARN, nato vnesite vlogo ARN.
- za Kategorija nalog, izberite Image in izberite Omejitveni okvir.
- Izberite Naslednji.
- v Delavci izberite vrsto delovne sile, ki jo želite uporabiti.
Delovno silo lahko izberete prek Amazon Mehanični Turk, prodajalci tretjih oseb ali vaša zasebna delovna sila. Za več podrobnosti o možnostih vaše delovne sile glejte Ustvarjanje in upravljanje delovne sile. - Razširi Možnosti prikaza obstoječih oznak in izberite Želim prikazati obstoječe oznake iz nabora podatkov za to opravilo.
- za Atribut oznake ime izberite ime iz manifesta, ki ustreza oznakam, ki jih želite prikazati za prilagoditev.
Videli boste le imena atributov oznak za oznake, ki ustrezajo vrsti opravila, ki ste ga izbrali v prejšnjih korakih. - Ročno vnesite oznake za Orodje za označevanje omejevalnih okvirjev.
Oznake morajo vsebovati iste oznake, ki se uporabljajo v javnem naboru podatkov. Dodate lahko nove oznake. Naslednji posnetek zaslona prikazuje, kako lahko izberete delavce in konfigurirate orodje za svoje opravilo označevanja. - Izberite predogled za predogled slike in izvirnih opomb.
Zdaj smo ustvarili delovno mesto za označevanje v Ground Truth. Ko je naše delo končano, lahko naložimo novo ustvarjene označene podatke v FiftyOne. Ground Truth ustvari izhodne podatke v izhodnem manifestu Ground Truth. Za več podrobnosti o datoteki izhodnega manifesta glejte Izhod opravila omejevalni okvir. Naslednja koda prikazuje primer te oblike izhodnega manifesta:
Preglejte označene rezultate iz Ground Truth v FiftyOne
Ko je opravilo končano, prenesite izhodni manifest opravila označevanja iz Amazon S3.
Preberite izhodno datoteko manifesta:
Ustvarite nabor podatkov FiftyOne in pretvorite vrstice manifesta v vzorce v naboru podatkov:
Zdaj si lahko ogledate visokokakovostne označene podatke iz Ground Truth v FiftyOne.
zaključek
V tej objavi smo pokazali, kako zgraditi visokokakovostne nabore podatkov s kombiniranjem moči Enainpetdeset by voxel51, odprtokodni nabor orodij, ki vam omogoča upravljanje, sledenje, vizualizacijo in urejanje vašega nabora podatkov, in Ground Truth, storitev označevanja podatkov, ki vam omogoča učinkovito in natančno označevanje naborov podatkov, potrebnih za usposabljanje sistemov ML, z zagotavljanjem dostopa do več zgrajenih -v predlogah nalog in dostopu do raznolike delovne sile prek Mechanical Turk, tretjih ponudnikov ali lastne zasebne delovne sile.
Priporočamo vam, da preizkusite to novo funkcionalnost tako, da namestite primerek FiftyOne in za začetek uporabite konzolo Ground Truth. Če želite izvedeti več o Ground Truth, glejte Podatki o oznaki, Pogosta vprašanja o označevanju podatkov Amazon SageMakerIn Blog za strojno učenje AWS.
Povežite se z Skupnost strojnega učenja in umetne inteligence če imate kakršna koli vprašanja ali povratne informacije!
Pridružite se skupnosti FiftyOne!
Pridružite se tisočim inženirjem in podatkovnim znanstvenikom, ki že uporabljajo FiftyOne za reševanje nekaterih najzahtevnejših problemov računalniškega vida danes!
O avtorjih
Shalendra Chhabra je trenutno vodja produktnega upravljanja za storitve Amazon SageMaker Human-in-the-Loop (HIL). Prej je Shalendra inkubirala in vodila jezikovno in pogovorno inteligenco za sestanke Microsoft Teams, bila EIR pri Amazon Alexa Techstars Startup Accelerator, podpredsednica produkta in trženja pri Discuss.io, vodja produktnega in trženja pri Clipboard (prevzet s strani Salesforce) in vodilni produktni vodja pri Swype (prevzet s strani Nuance). Skupno je Shalendra pomagala pri gradnji, pošiljanju in trženju izdelkov, ki so se dotaknili več kot milijarde življenj.
Jakob Marks je inženir strojnega učenja in evangelist razvijalcev pri Voxel51, kjer pomaga zagotoviti preglednost in jasnost svetovnih podatkov. Preden se je pridružil Voxel51, je Jacob ustanovil startup, da bi pomagal nastajajočim glasbenikom pri povezovanju in delitvi ustvarjalne vsebine z oboževalci. Pred tem je delal pri Google X, Samsung Research in Wolfram Research. V preteklem življenju je bil Jacob teoretični fizik, doktoriral je na Stanfordu, kjer je raziskoval kvantne faze materije. V prostem času Jacob rad pleza, teče in bere znanstvenofantastične romane.
Jason Corso je soustanovitelj in izvršni direktor podjetja Voxel51, kjer usmerja strategijo za pomoč pri zagotavljanju preglednosti in jasnosti svetovnih podatkov s pomočjo najsodobnejše prilagodljive programske opreme. Je tudi profesor robotike, elektrotehnike in računalništva na Univerzi v Michiganu, kjer se osredotoča na najsodobnejše probleme na stičišču računalniškega vida, naravnega jezika in fizičnih platform. V prostem času Jason uživa v preživljanju časa z družino, branju, bivanju v naravi, igranju družabnih iger in vseh mogočih ustvarjalnih dejavnostih.
Brian Moore je soustanovitelj in tehnični direktor podjetja Voxel51, kjer vodi tehnično strategijo in vizijo. Ima doktorat iz elektrotehnike na Univerzi v Michiganu, kjer je bilo njegovo raziskovanje osredotočeno na učinkovite algoritme za obsežne probleme strojnega učenja, s posebnim poudarkom na aplikacijah računalniškega vida. V prostem času uživa v badmintonu, golfu, pohodništvu in igri s svojima dvojčkoma jorkširskim terierjem.
Zhuling Bai je inženir za razvoj programske opreme pri Amazon Web Services. Dela na razvoju obsežnih porazdeljenih sistemov za reševanje problemov strojnega učenja.
- Distribucija vsebine in PR s pomočjo SEO. Okrepite se še danes.
- PlatoAiStream. Podatkovna inteligenca Web3. Razširjeno znanje. Dostopite tukaj.
- Kovanje prihodnosti z Adryenn Ashley. Dostopite tukaj.
- Kupujte in prodajajte delnice podjetij pred IPO s PREIPO®. Dostopite tukaj.
- vir: https://aws.amazon.com/blogs/machine-learning/create-high-quality-datasets-with-amazon-sagemaker-ground-truth-and-fiftyone/
- :ima
- : je
- :ne
- :kje
- $GOR
- 000
- 1
- 10
- 11
- 13
- 14
- 20
- 200
- 2017
- 23
- 24
- 250
- 28
- 30
- 500
- 66
- 7
- 8
- 9
- a
- O meni
- pospeši
- pospeševanje
- plin
- dostop
- natančna
- natančno
- pridobljenih
- dejavnosti
- dodajte
- dodajanje
- Naslov
- Prilagojen
- Prilagoditev
- po
- spet
- AI
- Alexa
- algoritmi
- vsi
- omogoča
- sam
- že
- Prav tako
- Amazon
- Amazon SageMaker
- Amazon SageMaker Ground Truth
- Amazon Web Services
- med
- an
- analizirati
- in
- živali
- kaj
- aplikacija
- uporaba
- aplikacije
- Uporabi
- primerno
- SE
- urejeno
- članek
- članki
- AS
- povezan
- At
- Avtorji
- stran
- AWS
- baza
- temeljijo
- BE
- ker
- postanejo
- bilo
- pred
- zadaj
- v zakulisju
- počutje
- Verjemite
- BEST
- Boljše
- med
- Billion
- svet
- Namizne igre
- KOST
- Bootstrap
- tako
- Pasovi
- škatle
- Brain
- Break
- prinašajo
- prinesel
- proračun
- izgradnjo
- Building
- vgrajeno
- vendar
- nakup
- by
- CAN
- Zajemanje
- primeru
- primeri
- kategorije
- Kategorija
- ceo
- izziv
- izziv
- preveriti
- Izberite
- jasnost
- razred
- razredi
- Razvrstitev
- čiščenje
- jasno
- jasno
- stranke
- Plezanje
- Zapri
- bližje
- Oblačila
- Oblačila
- So-ustanovitelj
- Koda
- združujejo
- združevanje
- podjetje
- Dopolnilo
- dokončanje
- dokončanje
- Izračunajte
- računalnik
- Računalništvo
- Računalniška vizija
- Aplikacije za računalniški vid
- zaupanje
- Prepričani
- Connect
- premislek
- Sestavljeno
- Konzole
- vsebujejo
- Vsebuje
- vsebina
- Vsebina
- nadzorom
- pogovorni
- pretvorbo
- Core
- popravljen
- ustreza
- strošek
- stroški
- ustvarjajo
- ustvaril
- Creative
- Mandatno
- CTO
- kurirano
- kustos
- Trenutno
- po meri
- stranka
- Stranke, ki so
- Cut
- vrhunsko
- datum
- nabor podatkov
- odloča
- izkazati
- denim
- globina
- opis
- Podrobnosti
- Odkrivanje
- Razvojni
- razvoju
- Razvoj
- drugačen
- neposredno
- imeniki
- zaslon
- izrazit
- porazdeljena
- porazdeljeni sistemi
- razne
- do
- Ne
- Pes
- tem
- opravljeno
- dont
- DOT
- navzdol
- prenesi
- dvojnikov
- e
- vsak
- lahka
- Edge
- učinek
- učinkovite
- učinkovito
- vdelava
- smirkovim
- Poudarek
- zaposluje
- pooblašča
- zaprto
- spodbujanje
- konec
- inženir
- Inženiring
- Inženirji
- Vnesite
- okolje
- enakost
- bistvena
- ustanovljena
- ocenjevanje
- Evangelist
- točno
- Primer
- obstoječih
- izvoz
- pošteno
- družina
- ventilatorji
- povratne informacije
- Nekaj
- Fiction
- Polje
- Področja
- file
- datoteke
- filter
- filtriranje
- končna
- prva
- fit
- prilagodljiv
- Osredotočite
- osredotočena
- Osredotoča
- po
- za
- obrazec
- format
- Na srečo
- Ustanovljeno
- štiri
- brezplačno
- iz
- v celoti
- funkcionalnost
- Games
- glavni namen
- ustvarjajo
- ustvarila
- dobili
- GitHub
- Daj
- dana
- Cilj
- golf
- dobro
- Grafično
- več
- Mreža
- Igrišče
- skupina
- vodi
- srečna
- Imajo
- he
- Glava
- višina
- pomoč
- pomagal
- pomoč
- Pomaga
- tukaj
- visoka kvaliteta
- visoka ločljivost
- najvišja
- zelo
- njegov
- drži
- Kako
- Kako
- Vendar
- HTML
- http
- HTTPS
- človeškega
- i
- ID
- identificirati
- identifikacijo
- ID-ji
- if
- slika
- slike
- vpliv
- uvoz
- izboljšanju
- in
- V drugi
- Vključno
- nepravilno
- inkubirano
- Podatki
- začetna
- na začetku
- namestitev
- Namestitev
- primer
- Namesto
- Navodila
- Intelligence
- križišče
- v
- IT
- ITS
- Jersey
- Job
- pridružil
- skupno
- json
- samo
- Imejte
- vzdrževanje
- label
- označevanje
- Oznake
- jezik
- obsežne
- kosilo
- začetek
- vodi
- Interesenti
- UČITE
- učenje
- vsaj
- Led
- levo
- Lets
- Knjižnica
- življenje
- kot
- Verjeten
- LIMIT
- Limited
- vrstica
- linije
- Seznam
- seznam
- oglasi
- malo
- živi
- obremenitev
- Poglej
- si
- Sklop
- nizka
- stroj
- strojno učenje
- je
- magic
- Znamka
- IZDELA
- upravljanje
- upravlja
- upravljanje
- upravitelj
- več
- map
- Tržna
- Trženje
- Stave
- ujemanje
- materialno
- Matter
- Maj ..
- mehanska
- mediji
- sestanki
- Meta
- metapodatki
- Metoda
- Metode
- Michigan
- Microsoft
- Microsoftove ekipe
- morda
- minimalna
- ML
- Mobilni
- mobilna aplikacija
- Model
- modeli
- Moduli
- več
- Najbolj
- premikanje
- veliko
- več
- glasbeniki
- morajo
- Ime
- Imenovan
- Imena
- naravna
- Narava
- Blizu
- nujno
- potrebno
- Nimate
- potrebe
- Novo
- opazno
- Pojem
- zdaj
- Nuance
- Številka
- predmet
- Zaznavanje objektov
- predmeti
- of
- Uradni
- on
- enkrat
- ONE
- na spletu
- samo
- odprite
- open source
- operacije
- Priložnost
- možnosti
- or
- Organizirano
- izvirno
- OS
- Ostalo
- drugi
- naši
- ven
- opisano
- izhod
- več
- lastne
- lastnik
- Paketi
- seznanjeni
- del
- zlasti
- preteklosti
- pot
- Vzorec
- vzorci
- popolna
- performance
- oseba
- Prilagojene
- Faze snovi
- fizično
- kramp
- slike
- KARIRASTO
- Plain
- Platforme
- platon
- Platonova podatkovna inteligenca
- PlatoData
- igranje
- Točka
- naseljeno
- mogoče
- Prispevek
- moč
- praksa
- napovedano
- napoved
- Napovedi
- predogled
- prejšnja
- prej
- Tiskanje
- Predhodna
- zasebna
- verjetno
- Težave
- Postopek
- Izdelek
- upravljanje izdelkov
- produktni vodja
- Izdelki
- Učitelj
- Projekt
- nepremičnine
- prihodnosti
- Prototip
- zagotavljajo
- če
- zagotavljanje
- javnega
- namene
- Python
- Kvantna
- vprašanja
- hitro
- območje
- precej
- reading
- pripravljen
- Priporočamo
- Priporočila
- zmanjša
- Zmanjšana
- Zmanjšanje
- relativno
- sprosti
- pomembno
- odstrani
- predstavnik
- predstavlja
- obvezna
- Raziskave
- raziskovalci
- Resolucija
- omejiti
- povzroči
- rezultat
- Rezultati
- Trgovina na drobno
- vrnitev
- pregleda
- znebi
- robotika
- robusten
- vloga
- grobo
- ROW
- uniči
- tek
- sagemaker
- Je dejal
- prodajni center
- Enako
- Samsung
- Shrani
- prizori
- Znanost
- Znanstvena fantastika
- Znanstveniki
- rezultat
- brez težav
- drugi
- Oddelek
- oddelki
- glej
- zdi se
- Zdi se,
- izbran
- Občutek
- ločena
- Storitev
- Storitve
- Zasedanje
- nastavite
- Delite s prijatelji, znanci, družino in partnerji :-)
- je
- LADJE
- shouldnt
- Prikaži
- Razstave
- DA
- Podoben
- Enostavno
- manj
- So
- Software
- Razvoj programske opreme
- SOLVE
- nekaj
- nekdo
- Nekaj
- Vesolje
- preživeti
- Poraba
- po delih
- Razcepi
- Stanford
- Začetek
- začel
- Začetek
- zagon
- state-of-the-art
- Koraki
- Še vedno
- shranjevanje
- trgovina
- Strategija
- slog
- POVZETEK
- Podprti
- sistemi
- Bodite
- Naloga
- Skupine
- tehnični
- pove
- predloge
- Test
- kot
- da
- O
- njihove
- Njih
- POTEM
- Teoretični
- Tukaj.
- te
- jih
- stvari
- mislim
- tretjih oseb
- ta
- tisoče
- Prag
- skozi
- Metanje
- čas
- do
- skupaj
- orodje
- Orodje
- vrh
- najvišji nivo
- Topi
- Skupaj za plačilo
- dotaknil
- sledenje
- Vlak
- usposobljeni
- usposabljanje
- Transform
- Preglednost
- Res
- Resnica
- OBRAT
- dva
- tip
- Vrste
- pod
- razumeli
- edinstven
- univerza
- Nadgradnja
- us
- uporaba
- primeru uporabe
- Rabljeni
- uporabnik
- Uporabniki
- uporabo
- Vrednote
- raznolikost
- različnih
- prodajalci
- preverjanje
- zelo
- preko
- Poglej
- Virtual
- Vizija
- želeli
- je
- we
- web
- spletne storitve
- Dobro
- so bili
- Kaj
- kdaj
- ali
- ki
- širina
- Wikipedia
- bo
- z
- v
- brez
- Ženske
- besede
- delo
- delal
- delavci
- Delovna sila
- deluje
- svetu
- skrbi
- bi
- pisati
- X
- Vi
- Vaša rutina za
- zefirnet
- Zip
- ZOO