PyTorch este o bibliotecă open-source bazată pe Python. Oferă flexibilitate și viteză ridicate în timp ce construiește, antrenează și implementează modele de învățare profundă.

În centrul său, PyTorch implică operații care implică tensori. Un tensor este un număr, vector, matrice sau orice matrice n-dimensională.

În acest articol, vom vedea diferite moduri de a crea tensori folosind metode (funcții) de tensor PyTorch.

Subiecte pe care le vom aborda

  • tensor
  • zerouri
  • cele
  • deplin
  • aranjează
  • linspace
  • rand
  • randint
  • ochi
  • complex

Metoda tensorului ()

Această metodă returnează un tensor când data i se transmite. data poate fi un scalar, un tuplu, o listă sau un NumPy matrice.

În exemplul de mai sus, un tablou NumPy care a fost creat folosind np.arange() a fost trecut la tensor() metoda, rezultând un tensor 1-D.

Putem crea un tensor multidimensional trecând un tuplu de tupluri, o listă de liste sau o matrice NumPy multidimensională.

Când este trecut un tuplu sau o listă goală tensor(), creează un tensor gol.

Metoda zeros ()

Această metodă returnează un tensor în care toate elementele sunt zerouri, dintre cele specificate size (formă). size poate sa să fie dat ca un tuplu sau o listă sau nici unul.

Am fi putut trece 3, 2 în interiorul unui tuplu sau al unei liste, de asemenea. Se explică de la sine că trecerea numerelor negative sau a unui float ar duce la o eroare în timpul rulării.

Trecerea unui tuplu gol sau a unei liste goale dă un tensor de dimensiune (dimensiune) 0, având 0 ca singur element, al cărui tip de date este float.

Metoda ones ()

Similar cu zeros(), ones() returnează un tensor unde toate elementele sunt 1, din specificat size (formă). size poate sa să fie dat ca un tuplu sau o listă sau nici unul.

Ca zeros(), trecând un tuplu sau o listă goală se obține un tensor de 0 dimensiune, având 1 ca singur element, al cărui tip de date este float.

Metoda full ()

Ce se întâmplă dacă doriți ca toate elementele unui tensor să fie egale cu o anumită valoare, dar nu numai cu 0 și 1? Poate 2,9?

full() returnează un tensor al unei forme date de size argument, cu toate elementele sale egale cu fill_value.

Aici, am creat un tensor de formă 3, 2 cu fill_value ca 3. Din nou aici, trecerea unui tuplu sau a unei liste goale creează un tensor scalar de dimensiune zero.

În timpul utilizării full, este necesar a da size ca un tuplu sau o listă.

Metoda arange ()

Această metodă returnează un tensor 1-D, cu elemente din start (inclusiv) la end (exclusiv) cu o diferență comună step. Valoarea implicită pentru start este 0 în timp ce pentru step este 1.

Se poate spune că elementele tensorului se află în Progresia aritmetică, cu step ca diferență comună.

Aici, am creat un tensor care începe de la 2 și merge până la 20 cu a step (diferență comună) de 2.

Toți cei trei parametri, start, end și step poate fi pozitiv, negativ sau plutitor.

În timp ce alegeți start, end, și step, trebuie să ne asigurăm că start și end sunt în concordanță cu step semn.

De cand step este setat ca -2, nu există nicio modalitate -42 poate ajunge la -22 (exclusiv). Prin urmare, dă o eroare.

Metoda linspace ()

Această metodă returnează un tensor dimensional 1-D, cu elemente din start (inclusiv) la end (inclusiv). Cu toate acestea, spre deosebire de arange(), aici, steps nu este diferența obișnuită, ci numărul de elemente care trebuie să fie în tensor.

PyTorch decide automat diferența comună în funcție de steps dat.

Nu oferă o valoare pentru steps este depreciat. Pentru compatibilitate înapoi, neacordarea unei valori pentru pași creează un tensor cu 100 elemente. Conform documentației oficiale, într-o versiune viitoare PyTorch, dacă nu furnizați o valoare pentru pași, va apărea o eroare de rulare.

Spre deosebire de arange(), linspace poate avea o start mai mare ca end întrucât diferența comună este calculată automat.

De cand steps aici nu este o diferență obișnuită, ci numărul de elemente, poate fi doar un număr întreg negativ.

Metoda rand ()

Această metodă returnează un tensor umplut cu numere aleatorii dintr-o distribuție uniformă pe intervalul 0 (inclusiv) la 1 (exclusiv). Forma este dată de size argument. size argumentul poate fi dat sub formă de tuplu sau listă sau nici unul.

Trecerea unui tuplu sau a unei liste goale creează un tensor scalar de dimensiune zero.

Metoda randint ()

Această metodă returnează un tensor umplut cu numere întregi aleatorii generate uniform între low (inclusiv) și high (exclusiv). Forma este dată de size argument. Valoarea implicită pentru low este 0.

Când doar unul int argumentul este trecut, low obține valoarea 0, în mod implicit, și high obține valoarea trecută.

size argumentul ia doar un tuplu sau o listă. Un tuplu sau o listă goală creează un tensor cu dimensiunea zero.

Metoda ochiului ()

Această metodă returnează un tensor 2-D cu unii pe diagonală și zerouri în altă parte. Numărul de rânduri este dat de n iar coloanele sunt date de m.

Valoarea implicită pentru m este valoarea n. Numai când n este trecut, creează un tensor sub forma unui matrice de identitate. O matrice de identitate are elementele sale diagonale ca 1 și toate celelalte ca 0.

Metoda complexă ()

Această metodă returnează un tensor complex cu partea sa reală egală cu real iar partea sa imaginară egală cu imag. Ambii real și imag sunt tensori.

Tipul de date al ambelor real și imag tensorii ar trebui să fie fie float sau double.

De asemenea size de ambii tensori, real și imag, ar trebui să fie la fel, deoarece elementele corespunzătoare ale celor două matrice formează un număr complex.

Concluzie

Am acoperit zece moduri diferite de a crea tensori folosind metodele PyTorch. Puteți trece prin documentație oficială pentru a afla mai multe despre alte metode PyTorch.

Puteți face clic aici pentru a merge la notebook-ul Jupyter unde vă puteți juca cu aceste metode.

Dacă doriți să aflați mai multe despre PyTorch, verificați acest curs uimitor pe Routech YouTube canal.

Stai in siguranta!