Modellér en tensor i Mojo
Shape, strides og elementlayout.
Modellér en tensor i Mojo er en gratis Mojo Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Mojo Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Mojo Academy-kurset indeholder 4 lektioner i alt.
Hvad er en tensor?
En tensor er blot et n-dimensionalt gitter af tal. En vektor er 1D, en matrix er 2D, og et billedbatch er ofte 4D.
Flad hukommelse nedenunder
Uanset hvor mange dimensioner du forestiller dig, ligger en tensor i virkeligheden som én flad buffer af værdier i hukommelsen, placeret efter hinanden.
var data = List[Float32](0, 1, 2, 3, 4, 5)Formen beskriver gitteret
Formen er en tupel af størrelser, én for hver dimension. En form på (2, 3) betyder to rækker med tre kolonner.
var shape = (2, 3) # 2 rows, 3 colsIndekser vælger et element
Du angiver et element med ét indeks for hver dimension. I en tensor med formen (2, 3) er (1, 2) den sidste kolonne i den anden række.
Strides knytter sig til hukommelsen
En stride fortæller, hvor mange flade pladser du skal springe over for at bevæge dig ét trin langs en dimension. Strides omdanner indekser til én forskydning.
var strides = (3, 1) # row jump 3, col jump 1Formlen for forskydningen
Fladgør ethvert indeks med et prikprodukt: forskydning er summen af hvert indeks ganget med dets stride. Den forskydning når frem til den rigtige plads.
offset = i * strides[0] + j * strides[1]Rækkevis layout
Numerisk Mojo-kode gemmer normalt rækker sammenhængende, hvilket kaldes rækkevis. Den sidste dimension har stride 1, så kolonnerne ligger side om side.
Hvorfor strides er effektive
Med gennemtænkte strides kan du vise, udskære eller transponere en tensor uden at kopiere data. Kun strides ændres, ikke bufferen.
Elementtypen betyder noget
Alle tensorer har en fast dtype, f.eks. Float32 eller Int64. En ensartet type lader Mojo pakke værdier tæt og beregne hurtigt.
alias dtype = DType.float32En minimal tensorstruktur
Du kan modellere en tensor som en struktur, der samler en datapointer med dens form og strides, så layoutoplysningerne holdes ét sted.
struct Tensor:
var data: UnsafePointer[Float32]
var shape: (Int, Int)
var strides: (Int, Int)Sammenhængende kontra stridebaseret
En kontigu tensor har ingen huller, så en lineær gennemgang er billig. Views med strides kan springe rundt i hukommelsen, hvilket kan gøre hukommelsesadgang langsommere.
Hurtigt tjek
Du har en (2, 3)-tensor i row-major-format. Hvordan når du elementet (1, 2)?
Opsummering
En tensor er en flad buffer plus shape og strides; offset-formlen mapper indekser til hukommelse, og row-major holder kolonner sammenhængende. 🧮
Lær Mojo med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 30
- Lektioner
- 120
Ofte stillede spørgsmål
Er lektionen “Modellér en tensor i Mojo” gratis?
Ja — alle 3 lektioner i læringssporet Mojo Academy, inklusive “Modellér en tensor i Mojo”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Mojo Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Modellér en tensor i Mojo”?
Shape, strides og elementlayout. Du øver dig i Mojo Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Mojo Academy?
Der kræves ingen tidligere erfaring. Mojo Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.
Hvor lang tid tager lektionen “Modellér en tensor i Mojo”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Mojo Academy-lektion?
Ja. Alle Mojo Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Modellér en tensor i Mojo
- Byg en matmul trin for trin
- Optimér det indre produkt
- Kontrollér numerisk korrekthed