Deep Learning Academy · Oppitunti

Viekää malli ONNX-muotoon

Suorittakaa mallia eri ajoympäristöissä

Oppitunti 2/413 vaihetta

Viekää malli ONNX-muotoon on ilmainen Deep Learning Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Deep Learning Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Deep Learning Academy-kurssilla on yhteensä 4 oppituntia.

Yksi malli, monta ajoympäristöä

Joskus mallinne on suoritettava ympäristössä, johon PyTorchia ei ole asennettu. ONNX on yhteinen formaatti, jonka ansiosta yksi malli voi toimia monissa suoritusmoottoreissa. 🌐

Mistä ONNX tulee

ONNX tulee sanoista Open Neural Network Exchange. Se on toimittajariippumaton tiedostomuoto, joka kuvaa mallinne standarditoimintojen muodostamana graafina.

Miksi tiimit pitävät ONNX:stä

ONNX:n avulla koulutatte mallin PyTorchilla mutta otatte sen käyttöön ONNX Runtime -ympäristössä, mobiililaitteessa tai selaimessa ilman, että mallia tarvitsee kirjoittaa uudelleen jokaiselle alustalle.

Vie yhdellä kutsulla

Viet mallin antamalla PyTorchille mallin ja esimerkkisyötteen. Viejä jäljittää suorituksen ja kirjoittaa siirrettävän graafin levylle.

import torch
torch.onnx.export(model, sample_input, 'model.onnx')

Dummy-syöte muovaa graafin

Esimerkkitensorin muodon ja dtypen on vastattava todellista syötettä, koska viejä tallentaa datan käynnistämät operaatiot.

sample_input = torch.randn(1, 3, 224, 224)

Nimeä syötteet ja tulosteet

Antakaa selkeät syötteiden ja tulosteiden nimet, jotta palvelukoodi voi yhdistää datan nimien perusteella sen sijaan, että se arvaisi sijainnit.

torch.onnx.export(model, x, 'm.onnx',
  input_names=['image'], output_names=['logits'])

Salli joustavat batch-koot

Oletusarvoisesti batch-koko on kiinteä. Merkitkää se dynaamiseksi akseliksi, jotta viety malli hyväksyy kerralla minkä tahansa määrän syötteitä.

dynamic_axes={'image': {0: 'batch'}}

Tarkista vienti aina

Ladatkaa tiedosto onnx-kirjastolla ja suorittakaa sisäinen tarkistus varmistaaksenne graafin kelvollisuuden ennen sen käyttöönottoa. ✅

import onnx
onnx.checker.check_model(onnx.load('model.onnx'))

Suorita ONNX Runtimella

ONNX Runtime on nopea moottori, joka suorittaa viedyn mallin CPU:lla tai GPU:lla, usein nopeammin kuin tavallinen Python-päättely.

import onnxruntime as ort
session = ort.InferenceSession('model.onnx')

Varmista, että luvut täsmäävät

Suorittakaa sama syöte PyTorchilla ja ONNX Runtimella ja verratkaa tuloksia. Niiden pitäisi täsmätä hyvin, mikä osoittaa viennin säilyttäneen mallin toiminnan.

Huomioi opset-versio

Jokainen vienti kohdistuu opset-versioon, joka määrittää tuettujen operaatioiden joukon. Valitkaa versio, jonka kohdeympäristö ymmärtää, jotta vältätte virheet.

torch.onnx.export(model, x, 'm.onnx', opset_version=17)

Pikatarkistus

Haluatte kiinteän batch-koon sijaan hyväksyä minkä tahansa koon. Mitä asetatte?

Kertaus: siirrettävä eri ajoympäristöihin

Veitte PyTorch-mallin ONNX-muotoon esimerkkisyötteen avulla, nimesitte akselit, validoitte mallin ja suorititte sen ONNX Runtimella missä tahansa. 🎉

Aloita maksutta

Opi Python tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”Viekää malli ONNX-muotoon” ilmainen?

Kyllä – oppitunnin ”Viekää malli ONNX-muotoon” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Deep Learning Academy-kurssin, päivitä CoddyKit PROhon. Deep Learning Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Viekää malli ONNX-muotoon”?

Suorittakaa mallia eri ajoympäristöissä Harjoittelet Deep Learning Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Deep Learning Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Deep Learning Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Viekää malli ONNX-muotoon”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Deep Learning Academy-oppitunnilla?

Kyllä. Jokainen Deep Learning Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. TorchScript ja torch.compile
  2. Viekää malli ONNX-muotoon
  3. Kvantisaatio pienemmille ja nopeammille malleille
  4. Tarjotkaa malli FastAPI:lla
← Takaisin: Deep Learning Academy