Modelet e mësimit të makinerive (ML) që përdorni me LiteRT janë krijuar dhe trajnuar fillimisht duke përdorur bibliotekat dhe mjetet thelbësore të TensorFlow. Pasi të keni ndërtuar një model me bërthamën TensorFlow, mund ta konvertoni atë në një format modeli ML më të vogël dhe më efikas të quajtur modeli LiteRT. Ky seksion ofron udhëzime për konvertimin e modeleve tuaja TensorFlow në formatin e modelit LiteRT.
Rrjedha e punës e konvertimit
Konvertimi i modeleve TensorFlow në formatin LiteRT mund të marrë disa rrugë në varësi të përmbajtjes së modelit tuaj ML. Si hap i parë i këtij procesi, ju duhet të vlerësoni modelin tuaj për të përcaktuar nëse ai mund të konvertohet drejtpërdrejt. Ky vlerësim përcakton nëse përmbajtja e modelit mbështetet nga mjediset standarde të kohës së funksionimit LiteRT bazuar në operacionet TensorFlow që ai përdor. Nëse modeli juaj përdor operacione jashtë grupit të mbështetur, ju keni mundësinë të rifaktoni modelin tuaj ose të përdorni teknika të avancuara konvertimi.
Diagrami më poshtë tregon hapat e nivelit të lartë në konvertimin e një modeli.
Figura 1. Rrjedha e punës e konvertimit të LiteRT.
Seksionet e mëposhtme përshkruajnë procesin e vlerësimit dhe konvertimit të modeleve për përdorim me LiteRT.
Formatet e modelit të hyrjes
Mund ta përdorni konvertuesin me formatet e mëposhtme të modelit të hyrjes:
- SavedModel ( rekomandohet ): Një model TensorFlow i ruajtur si një grup skedarësh në disk.
- Modeli Keras : Një model i krijuar duke përdorur API-në e nivelit të lartë Keras.
- Format Keras H5 : Një alternativë e lehtë për formatin SavedModel e mbështetur nga Keras API.
- Modele të ndërtuara nga funksione konkrete : Një model i krijuar duke përdorur API të nivelit të ulët TensorFlow.
Mund t'i ruani të dy modelet e funksioneve Keras dhe ato konkrete si SavedModel dhe të konvertoni duke përdorur shtegun e rekomanduar.
Nëse keni një model Jax, mund të përdorni API TFLiteConverter.experimental_from_jax
për ta kthyer atë në formatin LiteRT. Ki parasysh se kjo API është subjekt i ndryshimit ndërsa është në modalitetin eksperimental.
Vlerësimi i konvertimit
Vlerësimi i modelit tuaj është një hap i rëndësishëm përpara se të përpiqeni ta konvertoni atë. Kur vlerësoni, dëshironi të përcaktoni nëse përmbajtja e modelit tuaj është në përputhje me formatin LiteRT. Ju gjithashtu duhet të përcaktoni nëse modeli juaj është i përshtatshëm për t'u përdorur në pajisjet celulare dhe ato të skajshme për sa i përket madhësisë së të dhënave që përdor modeli, kërkesave të tij për përpunimin e harduerit dhe madhësisë dhe kompleksitetit të përgjithshëm të modelit.
Për shumë modele, konverteri duhet të funksionojë jashtë kutisë. Sidoqoftë, biblioteka e operatorëve të integruar LiteRT mbështet një nëngrup të operatorëve kryesorë TensorFlow, që do të thotë se disa modele mund të kenë nevojë për hapa shtesë përpara se të konvertohen në LiteRT. Për më tepër, disa operacione që mbështeten nga LiteRT kanë kërkesa të kufizuara përdorimi për arsye të performancës. Shikoni udhëzuesin e përputhshmërisë së operatorit për të përcaktuar nëse modeli juaj duhet të rifaktorohet për konvertim.
Konvertimi i modelit
Konvertuesi LiteRT merr një model TensorFlow dhe gjeneron një model LiteRT (një format i optimizuar FlatBuffer i identifikuar nga zgjerimi i skedarit .tflite
). Ju mund të ngarkoni një SavedModel ose të konvertoni drejtpërdrejt një model që krijoni në kod.
Konvertuesi merr 3 flamuj (ose opsione) kryesore që personalizojnë konvertimin për modelin tuaj:
- Flamujt e përputhshmërisë ju lejojnë të specifikoni nëse konvertimi duhet të lejojë operatorët me porosi.
- Flamujt e optimizimit ju lejojnë të specifikoni llojin e optimizimit që do të zbatohet gjatë konvertimit. Teknika më e përdorur e optimizimit është kuantizimi pas trajnimit .
- Flamujt e meta të dhënave ju lejojnë të shtoni meta të dhëna në modelin e konvertuar, gjë që e bën më të lehtë krijimin e kodit të mbështjellësit specifik të platformës kur vendosni modele në pajisje.
Ju mund ta konvertoni modelin tuaj duke përdorur Python API ose mjetin e linjës së komandës . Shihni udhëzuesin e modelit Convert TF për udhëzime hap pas hapi mbi funksionimin e konvertuesit në modelin tuaj.
Në mënyrë tipike, ju do ta konvertoni modelin tuaj për mjedisin standard të kohës së ekzekutimit LiteRT ose mjedisin e kohës së ekzekutimit të shërbimeve të Google Play për LiteRT (Beta). Disa raste të avancuara të përdorimit kërkojnë personalizim të mjedisit të funksionimit të modelit, të cilat kërkojnë hapa shtesë në procesin e konvertimit. Shikoni seksionin e avancuar të mjedisit të kohës së ekzekutimit të përmbledhjes së Android për më shumë udhëzime.
Konvertim i avancuar
Nëse hasni në gabime gjatë ekzekutimit të konvertuesit në modelin tuaj, ka shumë të ngjarë që të keni një problem me përputhshmërinë e operatorit. Jo të gjitha operacionet TensorFlow mbështeten nga TensorFlow Lite. Ju mund t'i zgjidhni këto probleme duke rifaktoruar modelin tuaj ose duke përdorur opsione të avancuara konvertimi që ju lejojnë të krijoni një model të modifikuar të formatit LiteRT dhe një mjedis të personalizuar të kohës së funksionimit për atë model.
- Shikoni përmbledhjen e përputhshmërisë së modelit për më shumë informacion mbi konsideratat e përputhshmërisë së modelit TensorFlow dhe LiteRT.
- Temat nën përmbledhjen e përputhshmërisë së modelit mbulojnë teknika të avancuara për rifaktorimin e modelit tuaj, të tilla si udhëzuesi i operatorëve Zgjidh .
- Për listën e plotë të operacioneve dhe kufizimeve, shihni faqen LiteRT Ops .
Hapat e ardhshëm
- Shihni udhëzuesin e konvertimit të modeleve TF për të filluar shpejt konvertimin e modelit tuaj.
- Shikoni përmbledhjen e optimizimit për udhëzime se si të optimizoni modelin tuaj të konvertuar duke përdorur teknika si kuantizimi pas trajnimit .
- Shikoni përmbledhjen "Shtimi i meta të dhënave" për të mësuar se si të shtoni meta të dhëna në modelet tuaja. Metadata ofron përdorime të tjera një përshkrim të modelit tuaj si dhe informacion që mund të përdoret nga gjeneruesit e kodit.