Modellare un tensore in Mojo
Forma, stride e disposizione degli elementi.
Modellare un tensore in Mojo è una lezione Mojo Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Mojo Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Mojo Academy include 4 lezioni in totale.
Che cos'è un tensore?
Un tensore è semplicemente una griglia n-dimensionale di numeri. Un vettore è monodimensionale, una matrice è bidimensionale e un batch di immagini è spesso quadridimensionale.
La memoria sottostante è lineare
Indipendentemente dal numero di dimensioni, un tensore risiede in realtà in un unico buffer lineare di valori in memoria, disposti uno di seguito all'altro.
var data = List[Float32](0, 1, 2, 3, 4, 5)La shape descrive la griglia
La shape è una tupla di dimensioni, una per ogni asse. Una shape (2, 3) indica due righe di tre colonne.
var shape = (2, 3) # 2 rows, 3 colsGli indici selezionano un elemento
Per indicare un elemento usa un indice per ogni dimensione. In un tensore (2, 3), (1, 2) indica l'ultima colonna della seconda riga.
Gli stride mappano la memoria
Uno stride indica di quanti elementi lineari spostarsi per avanzare di un passo lungo una dimensione. Gli stride trasformano gli indici in un singolo offset.
var strides = (3, 1) # row jump 3, col jump 1La formula dell'offset
Renda lineare un indice tramite un prodotto scalare: l'offset è uguale alla somma di ogni indice moltiplicato per il relativo stride. Questo offset raggiunge la posizione corretta.
offset = i * strides[0] + j * strides[1]Layout row-major
Il codice numerico Mojo memorizza di solito le righe in modo contiguo: questo layout è detto row-major. L'ultima dimensione ha stride 1, quindi le colonne si trovano una accanto all'altra.
Perché gli stride sono potenti
Con stride scelti intelligentemente può visualizzare, suddividere o trasporre un tensore senza copiare i dati. Cambiano solo gli stride, non il buffer.
Il tipo degli elementi è importante
Ogni tensore ha un dtype fisso, come Float32 o Int64. Un tipo uniforme consente a Mojo di impacchettare i valori in modo compatto e calcolare rapidamente.
alias dtype = DType.float32Una struttura tensoriale minimale
Può modellare un tensore come una struct che raggruppa un puntatore ai dati con shape e stride, mantenendo tutte le informazioni sul layout in un unico punto.
struct Tensor:
var data: UnsafePointer[Float32]
var shape: (Int, Int)
var strides: (Int, Int)Contiguo e con stride
Un tensore contiguo non ha spazi vuoti, quindi una scansione lineare è poco costosa. Le viste con stride possono saltare da una posizione all'altra, rallentando l'accesso alla memoria.
Controllo rapido
Avete un tensore row-major di forma (2, 3). Come raggiungete l'elemento (1, 2)?
Riepilogo
Un tensore è un buffer piatto con forma e stride; la formula dell'offset mappa gli indici nella memoria e il formato row-major mantiene contigue le colonne. 🧮
Domande Frequenti
La lezione «Modellare un tensore in Mojo» è gratuita?
Sì — il testo completo di «Modellare un tensore in Mojo» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Mojo Academy, passa a CoddyKit PRO. Il corso Mojo Academy include 4 lezioni in totale.
Cosa imparerò in «Modellare un tensore in Mojo»?
Forma, stride e disposizione degli elementi. Eserciti Mojo Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Mojo Academy?
Non è richiesta alcuna esperienza precedente. Mojo Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Modellare un tensore in Mojo»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Mojo Academy?
Sì. Ogni lezione Mojo Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Modellare un tensore in Mojo
- Costruire una matmul passo dopo passo
- Ottimizzare il prodotto scalare
- Verificare la correttezza numerica