Το EITC/AI/DLPP Deep Learning with Python and PyTorch είναι το ευρωπαϊκό πρόγραμμα πιστοποίησης πληροφορικής σχετικά με τις βασικές αρχές του προγραμματισμού βαθιάς μάθησης στο Python με τη βιβλιοθήκη μηχανικής εκμάθησης PyTorch.
Το πρόγραμμα σπουδών του EITC/AI/DLPP Deep Learning with Python και PyTorch εστιάζει σε πρακτικές δεξιότητες στη βαθιά εκμάθηση Python προγραμματισμού με τη βιβλιοθήκη PyTorch οργανωμένη στην ακόλουθη δομή, που περιλαμβάνει περιεκτικό διδακτικό περιεχόμενο βίντεο ως αναφορά για αυτήν την πιστοποίηση EITC
Η βαθιά μάθηση (επίσης γνωστή ως βαθιά δομημένη μάθηση) είναι μέρος μιας ευρύτερης οικογένειας μεθόδων μηχανικής μάθησης που βασίζονται σε τεχνητά νευρικά δίκτυα με εκμάθηση εκπροσώπησης. Η μάθηση μπορεί να επιβλέπεται, ημι-εποπτευόμενη ή χωρίς επίβλεψη. Αρχιτεκτονικές βαθιάς μάθησης, όπως δίκτυα βαθιάς νευρικής, δίκτυα βαθιάς πεποίθησης, επαναλαμβανόμενα νευρικά δίκτυα και συνελικτικά νευρωνικά δίκτυα έχουν εφαρμοστεί σε πεδία όπως όραμα υπολογιστή, όραμα μηχανής, αναγνώριση ομιλίας, επεξεργασία φυσικής γλώσσας, αναγνώριση ήχου, φιλτράρισμα κοινωνικών δικτύων, μετάφραση μηχανών, βιοπληροφορική , σχεδιασμός φαρμάκων, ανάλυση ιατρικής εικόνας, επιθεώρηση υλικού και επιτραπέζια παιχνίδια, όπου έχουν παράγει αποτελέσματα συγκρίσιμα και σε ορισμένες περιπτώσεις ξεπερνώντας τις επιδόσεις των εμπειρογνωμόνων του ανθρώπου.
Η Python είναι μια ερμηνευμένη γλώσσα προγραμματισμού υψηλού επιπέδου και γενικού σκοπού. Η φιλοσοφία σχεδιασμού της Python δίνει έμφαση στην αναγνωσιμότητα του κώδικα με την αξιοσημείωτη χρήση σημαντικού κενού χώρου. Οι γλωσσικές δομές και η αντικειμενοστρεφής προσέγγιση στοχεύουν να βοηθήσουν τους προγραμματιστές να γράψουν σαφή, λογικό κώδικα για μικρά και μεγάλα έργα. Η Python περιγράφεται συχνά ως γλώσσα "με μπαταρίες" λόγω της πλήρους τυποποιημένης βιβλιοθήκης της. Το Python χρησιμοποιείται συνήθως σε έργα τεχνητής νοημοσύνης και σε προγράμματα μηχανικής μάθησης με τη βοήθεια βιβλιοθηκών όπως TensorFlow, Keras, Pytorch και Scikit-learn.
Το Python είναι δυναμικά δακτυλογραφημένο (εκτελεί κατά το χρόνο εκτέλεσης πολλές κοινές συμπεριφορές προγραμματισμού που εκτελούν οι στατικές γλώσσες προγραμματισμού κατά τη διάρκεια της σύνταξης) και συλλέγονται σκουπίδια (με αυτόματη διαχείριση μνήμης). Υποστηρίζει πολλαπλά παραδείγματα προγραμματισμού, συμπεριλαμβανομένων δομημένου (ιδιαίτερα διαδικαστικού), αντικειμενοστραφούς και λειτουργικού προγραμματισμού. Δημιουργήθηκε στα τέλη της δεκαετίας του 1980 και κυκλοφόρησε για πρώτη φορά το 1991, από τον Guido van Rossum ως διάδοχο της γλώσσας προγραμματισμού ABC. Το Python 2.0, που κυκλοφόρησε το 2000, εισήγαγε νέες δυνατότητες, όπως κατανοητές λιστών και ένα σύστημα συλλογής απορριμμάτων με καταμέτρηση αναφοράς και διακόπηκε με την έκδοση 2.7 το 2020. Το Python 3.0, που κυκλοφόρησε το 2008, ήταν μια σημαντική αναθεώρηση της γλώσσας που είναι δεν είναι εντελώς συμβατό προς τα πίσω και πολύς κώδικας Python 2 δεν εκτελείται χωρίς τροποποίηση στο Python 3. Με το τέλος του κύκλου ζωής του Python 2 (και το pip έχασε την υποστήριξη το 2021), υποστηρίζονται μόνο το Python 3.6.x και νεότερες εκδόσεις, με παλαιότερες εκδόσεις ακόμα υποστήριξη π.χ. Windows 7 (και παλιά προγράμματα εγκατάστασης που δεν περιορίζονται σε Windows 64-bit).
Οι διερμηνείς Python υποστηρίζονται για mainstream λειτουργικά συστήματα και είναι διαθέσιμοι για λίγα ακόμη (και στο παρελθόν υποστηρίζονται πολλά περισσότερα). Μια παγκόσμια κοινότητα προγραμματιστών αναπτύσσει και διατηρεί το CPython, μια δωρεάν εφαρμογή ανοιχτού κώδικα. Ένας μη κερδοσκοπικός οργανισμός, το Python Software Foundation, διαχειρίζεται και κατευθύνει πόρους για την ανάπτυξη Python και CPython.
Από τον Ιανουάριο του 2021, η Python κατατάσσεται τρίτη στον κατάλογο των πιο δημοφιλών γλωσσών προγραμματισμού του TIOBE, πίσω από τη C και την Java, έχοντας προηγουμένως κερδίσει τη δεύτερη θέση και το βραβείο τους για το κέρδος με τη μεγαλύτερη δημοτικότητα για το 2020. Επιλέχθηκε η γλώσσα προγραμματισμού της χρονιάς το 2007, 2010 και 2018.
Μια εμπειρική μελέτη διαπίστωσε ότι οι γλώσσες σεναρίου, όπως η Python, είναι πιο παραγωγικές από τις συμβατικές γλώσσες, όπως η C και η Java, για προβλήματα προγραμματισμού που περιλαμβάνουν χειραγώγηση συμβολοσειρών και αναζήτηση σε ένα λεξικό, και διαπίστωσε ότι η κατανάλωση μνήμης ήταν συχνά «καλύτερη από την Java και όχι πολύ χειρότερο από το C ή το C ++ ». Οι μεγάλοι οργανισμοί που χρησιμοποιούν το Python περιλαμβάνουν: Wikipedia, Google, Yahoo !, CERN, NASA, Facebook, Amazon, Instagram.
Πέρα από τις εφαρμογές τεχνητής νοημοσύνης, το Python, ως γλώσσα δέσμης ενεργειών με αρθρωτή αρχιτεκτονική, απλή σύνταξη και εργαλεία επεξεργασίας εμπλουτισμένου κειμένου, χρησιμοποιείται συχνά για την επεξεργασία φυσικής γλώσσας.
Το PyTorch είναι μια βιβλιοθήκη μηχανικής μάθησης ανοιχτού κώδικα που βασίζεται στη βιβλιοθήκη Torch, που χρησιμοποιείται για εφαρμογές όπως η όραση με υπολογιστή και η επεξεργασία φυσικής γλώσσας, που αναπτύχθηκε κυρίως από το εργαστήριο AI Research του Facebook (FAIR). Είναι δωρεάν και ανοιχτού κώδικα λογισμικό που κυκλοφορεί υπό την άδεια τροποποιημένης BSD. Αν και η διεπαφή Python είναι πιο στιλβωμένη και πρωταρχική εστίαση της ανάπτυξης, η PyTorch διαθέτει επίσης μια διεπαφή C ++. Ορισμένα κομμάτια λογισμικού Deep Learning έχουν δημιουργηθεί πάνω από το PyTorch, συμπεριλαμβανομένων των Tesla Autopilot, Uber's Pyro, HuggingFace's Transformers, PyTorch Lightning και Catalyst.
- Tensor computing (όπως το NumPy) με ισχυρή επιτάχυνση μέσω μονάδων επεξεργασίας γραφικών (GPU)
- Βαθιά νευρωνικά δίκτυα βασισμένα σε σύστημα αυτόματης (υπολογιστικής) διαφοροποίησης με βάση την ταινία
Το Facebook λειτουργεί τόσο PyTorch όσο και Convolutional Architecture for Fast Feature Embedding (Caffe2), αλλά τα μοντέλα που ορίζονται από τα δύο πλαίσια ήταν αμοιβαία ασύμβατα. Το έργο Open Neural Network Exchange (ONNX) δημιουργήθηκε από το Facebook και τη Microsoft τον Σεπτέμβριο του 2017 για τη μετατροπή μοντέλων μεταξύ πλαισίων. Το Caffe2 συγχωνεύτηκε στο PyTorch στα τέλη Μαρτίου 2018.
Το PyTorch ορίζει μια κλάση που ονομάζεται Tensor (torch.Tensor) για αποθήκευση και λειτουργία σε ομοιογενείς πολυδιάστατες ορθογώνιες συστοιχίες αριθμών. Οι PyTorch Tensors είναι παρόμοιοι με τους NumPy Arrays, αλλά μπορούν επίσης να χρησιμοποιηθούν σε GPU Nvidia με δυνατότητα CUDA. Το PyTorch υποστηρίζει διάφορους υπο-τύπους Tensors.
Υπάρχουν λίγες σημαντικές ενότητες για το Pytorch. Αυτά περιλαμβάνουν:
- Autograd module: Το PyTorch χρησιμοποιεί μια μέθοδο που ονομάζεται αυτόματη διαφοροποίηση. Μια συσκευή εγγραφής καταγράφει τις λειτουργίες που έχουν εκτελέσει και στη συνέχεια την επαναλαμβάνει προς τα πίσω για να υπολογίσει τις κλίσεις. Αυτή η μέθοδος είναι ιδιαίτερα ισχυρή όταν δημιουργείτε νευρωνικά δίκτυα για να εξοικονομήσετε χρόνο σε μια εποχή με τον υπολογισμό της διαφοροποίησης των παραμέτρων στο μπροστινό πέρασμα.
- Optim module: torch.optim είναι μια ενότητα που εφαρμόζει διάφορους αλγόριθμους βελτιστοποίησης που χρησιμοποιούνται για την κατασκευή νευρωνικών δικτύων. Οι περισσότερες από τις συνήθως χρησιμοποιούμενες μεθόδους υποστηρίζονται ήδη, οπότε δεν χρειάζεται να τις κατασκευάσετε από το μηδέν.
- nn module: Το PyTorch autograd διευκολύνει τον καθορισμό υπολογιστικών γραφημάτων και τη λήψη διαβαθμίσεων, αλλά το raw autograd μπορεί να είναι λίγο πολύ χαμηλό επίπεδο για τον ορισμό σύνθετων νευρωνικών δικτύων. Εδώ μπορεί να βοηθήσει η ενότητα nn.
Για να εξοικειωθείτε λεπτομερώς με το πρόγραμμα σπουδών πιστοποίησης, μπορείτε να επεκτείνετε και να αναλύσετε τον παρακάτω πίνακα.
Το Πρόγραμμα Σπουδών Πιστοποίησης EITC/AI/DLPP Deep Learning with Python και PyTorch αναφέρεται σε διδακτικό υλικό ανοιχτής πρόσβασης σε μορφή βίντεο από τον Harrison Kinsley. Η μαθησιακή διαδικασία χωρίζεται σε μια δομή βήμα προς βήμα (προγράμματα -> μαθήματα -> θέματα) που καλύπτει σχετικά μέρη του προγράμματος σπουδών. Παρέχονται επίσης απεριόριστες συμβουλές με ειδικούς στον τομέα.
Για λεπτομέρειες σχετικά με τη διαδικασία πιστοποίησης ελέγξτε Πως δουλεύει.
Κατεβάστε το πλήρες προπαρασκευαστικό υλικό αυτομάθησης εκτός σύνδεσης για το πρόγραμμα EITC/AI/DLPP Deep Learning with Python και PyTorch σε αρχείο PDF
Προπαρασκευαστικά υλικά EITC/AI/DLPP – τυπική έκδοση
Προπαρασκευαστικό υλικό EITC/AI/DLPP – εκτεταμένη έκδοση με ερωτήσεις αναθεώρησης