Θεμελιώδεις λειτουργίες με τανυστές στο PyTorch

Themeliodeis Leitourgies Me Tanystes Sto Pytorch



Οι τανυστές είναι ο ακρογωνιαίος λίθος του PyTorch που παρέχει μια ισχυρή και ευέλικτη δομή δεδομένων για αριθμητικούς υπολογισμούς στη βαθιά μάθηση. Όπως οι πίνακες NumPy, αντιπροσωπεύουν πολυδιάστατους πίνακες αλλά με πρόσθετες δυνατότητες και βελτιστοποιήσεις που έχουν σχεδιαστεί ειδικά για εργασίες βαθιάς εκμάθησης. Δεδομένου ότι οι τανυστές είναι τα κύρια αντικείμενα για την αποθήκευση και το χειρισμό των αριθμητικών δεδομένων στο PyTorch, μπορούν να έχουν διαφορετικές διαστάσεις, που κυμαίνονται από βαθμωτούς (τανυστές 0 διαστάσεων) έως διανύσματα (τανυστές μίας διάστασης), πίνακες (τανυστές 2 διαστάσεων) και υψηλότερες - τανυστές διαστάσεων.

Ένα από τα μεγαλύτερα πλεονεκτήματα των τανυστών είναι η ικανότητά τους να εκτελούν αποτελεσματικές μαθηματικές πράξεις. Οι τανυστές υποστηρίζουν ένα ευρύ φάσμα αριθμητικών πράξεων, συμπεριλαμβανομένων των στοιχειωδών πράξεων όπως η πρόσθεση, η αφαίρεση, ο πολλαπλασιασμός και η διαίρεση και οι πράξεις μήτρας όπως ο πολλαπλασιασμός και η μεταφορά πίνακα.

Το PyTorch παρέχει ένα ολοκληρωμένο σύνολο συναρτήσεων και μεθόδων για τον χειρισμό των τανυστών. Αυτές περιλαμβάνουν λειτουργίες για την αναμόρφωση των τανυστών, την εξαγωγή συγκεκριμένων στοιχείων ή υπο-τανυστών και τη σύνδεση ή το διαχωρισμό των τανυστών κατά μήκος καθορισμένων διαστάσεων. Επιπλέον, το PyTorch προσφέρει λειτουργίες για την ευρετηρίαση, τον τεμαχισμό και τη μετάδοση των τανυστήρων που διευκολύνουν την εργασία με τανυστές διαφορετικών σχημάτων και μεγεθών.







Σε αυτό το άρθρο, θα μάθουμε τις θεμελιώδεις λειτουργίες με τους τανυστές στο PyTorch, θα εξερευνήσουμε πώς να δημιουργήσουμε τανυστές, να εκτελέσουμε βασικές λειτουργίες, να χειριστούμε το σχήμα τους και να τους μετακινήσουμε μεταξύ CPU και GPU.



Δημιουργία τανυστών

Οι τανυστές στο PyTorch μπορούν να δημιουργηθούν με διάφορους τρόπους. Ας εξερευνήσουμε μερικές κοινές μεθόδους.



Για να δημιουργήσουμε έναν τανυστή, μπορούμε να χρησιμοποιήσουμε την κλάση 'torch.Tensor' ή τη συνάρτηση 'torch.tensor'. Ας δούμε μερικά παραδείγματα:





εισαγωγή δάδα

# Δημιουργώ ένα 1 - τανυστής διαστάσεων από μια λίστα Python
tensor_1d = δάδα. τανύων μύς ( [ 1 , 2 , 3 , 4 , 5 ] )
Τυπώνω ( tensor_1d )

# Δημιουργώ ένα 2 - τανυστής διαστάσεων από μια ένθετη λίστα Python
tensor_2d = δάδα. τανύων μύς ( [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] ] )
Τυπώνω ( tensor_2d )

# Δημιουργήστε έναν τανυστή μηδενικών με συγκεκριμένο σχήμα
zeros_tensor = δάδα. μηδενικά ( 3 , 2 )
Τυπώνω ( zeros_tensor )

# Δημιουργήστε έναν τανυστή με ένα συγκεκριμένο σχήμα
ones_tensor = δάδα. αυτές ( 2 , 3 )
Τυπώνω ( ones_tensor )

# Δημιουργήστε έναν τανυστή με τυχαίες τιμές από ομοιόμορφη κατανομή
τυχαίος_τανυστής = δάδα. άκρα ( 2 , 2 )
Τυπώνω ( τυχαίος_τανυστής )

Στα παραδείγματα που δίνονται, δημιουργούμε τους τανυστές διαφορετικών σχημάτων και τους αρχικοποιούμε με διάφορες τιμές όπως συγκεκριμένους αριθμούς, μηδενικά, μονάδες ή τυχαίες τιμές. Θα πρέπει να δείτε μια παρόμοια έξοδο όταν εκτελείτε το προηγούμενο απόσπασμα κώδικα:



Λειτουργίες τανυστή

Μόλις έχουμε τανυστές, μπορούμε να εκτελέσουμε διάφορες πράξεις σε αυτούς, όπως αριθμητικές πράξεις βάσει στοιχείων, πράξεις μήτρας και άλλα.

Αριθμητικές πράξεις βάσει στοιχείων

Οι αριθμητικές πράξεις βάσει στοιχείων μας επιτρέπουν να εκτελούμε υπολογισμούς μεταξύ τανυστών με βάση στοιχείο προς στοιχείο. Οι τανυστές που εμπλέκονται στην επέμβαση θα πρέπει να έχουν το ίδιο σχήμα.

Να μερικά παραδείγματα:

εισαγωγή δάδα

# Δημιουργήστε τανυστές
τανυστήρας1 = δάδα. τανύων μύς ( [ 1 , 2 , 3 ] )
τανυστήρας2 = δάδα. τανύων μύς ( [ 4 , 5 , 6 ] )

# Πρόσθεση
πρόσθεση = τανυστήρας1 + τανυστήρας2
Τυπώνω ( 'Πρόσθεση:' , πρόσθεση )

# Αφαίρεση
αφαίρεση = τανυστήρας1 - τανυστήρας2
Τυπώνω ( 'Αφαίρεση:' , αφαίρεση )

# Πολλαπλασιασμός
πολλαπλασιασμός = τανυστήρας1 * τανυστήρας2
Τυπώνω ( 'Πολλαπλασιασμός:' , πολλαπλασιασμός )

# Μεραρχία
διαίρεση = τανυστήρας1 / τανυστήρας2
Τυπώνω ( 'Διαίρεση:' , διαίρεση )

Στον δεδομένο κώδικα, εκτελούμε τις πράξεις πρόσθεσης, αφαίρεσης, πολλαπλασιασμού και διαίρεσης μεταξύ δύο τανυστών που οδηγεί σε έναν νέο τανυστή με τις υπολογισμένες τιμές. Το αποτέλεσμα του αποσπάσματος κώδικα εμφανίζεται ως εξής:

Λειτουργίες Matrix

Το PyTorch παρέχει αποτελεσματικές λειτουργίες μήτρας για τανυστές, όπως ο πολλαπλασιασμός και η μετάθεση πινάκων. Αυτές οι λειτουργίες είναι ιδιαίτερα χρήσιμες για εργασίες όπως η γραμμική άλγεβρα και οι υπολογισμοί νευρωνικών δικτύων.

εισαγωγή δάδα

# Δημιουργήστε τανυστές
τανυστήρας1 = δάδα. τανύων μύς ( [ [ 1 , 2 ] , [ 3 , 4 ] ] )
τανυστήρας2 = δάδα. τανύων μύς ( [ [ 5 , 6 ] , [ 7 , 8 ] ] )

# Πολλαπλασιασμός πίνακα
matrix_product = δάδα. το χαλάκι ( τανυστήρας1 , τανυστήρας2 )
Τυπώνω ( 'Προϊόν Matrix:' , matrix_product )

# Μεταφορά μήτρας
matrix_transpose = τανυστήρας1. Τ
Τυπώνω ( 'Μεταφορά Matrix:' , matrix_transpose )

Στο συγκεκριμένο παράδειγμα, εκτελούμε τον πολλαπλασιασμό πίνακα χρησιμοποιώντας τη συνάρτηση 'torch.matmul' και λαμβάνουμε τη μετάθεση ενός πίνακα χρησιμοποιώντας το χαρακτηριστικό '.T'.

Χειρισμός σχήματος τανυστή

Εκτός από την εκτέλεση εργασιών σε τανυστές, συχνά χρειάζεται να χειριζόμαστε το σχήμα τους για να ταιριάζουν σε συγκεκριμένες απαιτήσεις. Το PyTorch παρέχει διάφορες λειτουργίες για την αναμόρφωση των τανυστών. Ας εξερευνήσουμε μερικές από αυτές τις λειτουργίες:

εισαγωγή δάδα

# Δημιουργήστε έναν τανυστήρα
τανύων μύς = δάδα. τανύων μύς ( [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] ] )

# Αναμορφώστε τον τανυστήρα
ανασχηματισμένος_τανυστής = τανύων μύς. αναπλάσσω ( 3 , 2 )
Τυπώνω ( 'Αναδιαμορφωμένος τανυστής:' , ανασχηματισμένος_τανυστής )

# Πάρτε το μέγεθος ενός τανυστή
Μέγεθος = τανύων μύς. Μέγεθος ( )
Τυπώνω ( 'Size of Tensor:' , Μέγεθος )

# Λάβετε τον αριθμό των στοιχείων σε ένας τανυστής
αριθμός_στοιχείων = τανύων μύς. δώσε όνομα ( )
Τυπώνω ( 'Αριθμός Στοιχείων:' , αριθμός_στοιχείων )

Στον παρεχόμενο κώδικα, αναδιαμορφώνουμε έναν τανυστή χρησιμοποιώντας τη συνάρτηση ανασχηματισμού, ανακτούμε το μέγεθος ενός τανυστή χρησιμοποιώντας τη μέθοδο μεγέθους και λαμβάνουμε τον συνολικό αριθμό στοιχείων σε έναν τανυστή χρησιμοποιώντας τη μέθοδο numel.

Κινούμενοι τανυστές μεταξύ CPU και GPU

Το PyTorch παρέχει υποστήριξη για επιτάχυνση GPU που μας επιτρέπει να εκτελούμε υπολογισμούς σε κάρτες γραφικών που μπορούν να επιταχύνουν σημαντικά τις εργασίες βαθιάς εκμάθησης μειώνοντας τους χρόνους εκπαίδευσης. Μπορούμε να μετακινήσουμε τους τανυστές μεταξύ της CPU και της GPU χρησιμοποιώντας τη μέθοδο 'to'.

Σημείωση : Αυτό μπορεί να γίνει μόνο εάν έχετε GPU NVIDIA με CUDA στον υπολογιστή σας.

εισαγωγή δάδα

# Δημιουργήστε έναν τανυστή στην CPU
tensor_cpu = δάδα. τανύων μύς ( [ 1 , 2 , 3 ] )

# Έλεγχος αν Η GPU είναι διαθέσιμη
αν δάδα. διαφορετικός . είναι διαθέσιμο ( ) :
# Μετακινήστε τον τανυστήρα στη GPU
tensor_gpu = tensor_cpu. προς την ( 'διαφορετικός' )
Τυπώνω ( 'Tensor on GPU:' , tensor_gpu )
αλλού :
Τυπώνω ( 'Η GPU δεν είναι διαθέσιμη.' )

Στον παρεχόμενο κώδικα, ελέγχουμε εάν μια GPU είναι διαθέσιμη χρησιμοποιώντας την torch.cuda.is_available(). Εάν υπάρχει διαθέσιμη GPU, μετακινούμε τον τανυστή από την CPU στη GPU χρησιμοποιώντας τη μέθοδο 'to' με το όρισμα 'cuda'.

συμπέρασμα

Η κατανόηση των θεμελιωδών λειτουργιών τανυστή είναι ζωτικής σημασίας για την εργασία με το PyTorch και τη δημιουργία μοντέλων βαθιάς εκμάθησης. Σε αυτό το άρθρο, εξερευνήσαμε πώς να δημιουργήσουμε τανυστές, να εκτελέσουμε βασικές λειτουργίες, να χειριστούμε το σχήμα τους και να τους μετακινήσουμε μεταξύ CPU και GPU. Οπλισμένοι με αυτή τη γνώση, μπορείτε τώρα να αρχίσετε να εργάζεστε με τανυστές στο PyTorch, να εκτελείτε υπολογισμούς και να δημιουργείτε εξελιγμένα μοντέλα βαθιάς μάθησης. Οι τανυστές χρησιμεύουν ως το θεμέλιο για την αναπαράσταση και τον χειρισμό δεδομένων στο PyTorch που σας επιτρέπει να απελευθερώσετε την πλήρη ισχύ αυτού του ευέλικτου πλαισίου μηχανικής μάθησης.