TensorShow | Coding Session #1
E’ giunto il momento di iniziare a sporcarsi le mani con un po’ di codice: vi aspettiamo numerosi per questa prima Coding Session !
Introdurremo la libreria Tensorflow (https://www.tensorflow.org) nella maniera più semplice possibile; ponendo l’attenzione sul significato del comando in sè piuttosto che sul linguaggio di programmazione (Python).
Tuttavia sarebbe preferibile avere una vaga idea di programmazione scientifica in Python e per questo motivo abbiamo deciso di venire incontro ai più bisognosi in tal senso.
Python & Co. 101
Affronteremo quindi l’installazione di Python e delle librerie fondamentali per poi approdare ad un breve excursus su Github e un mini-corso sulla programmazione scientifica.
“Python is powerful… and fast; plays well with others; runs everywhere; is friendly & easy to learn; is Open.”
These are some of the reasons people who use Python would rather not use anything else. (https://www.python.org/about/)
Al di là dell’entusiasmo dei suoi creatori Python è un linguaggio estremamente versatile. Esistono, tuttavia, due versioni: Python 2 e Python 3. Per quanto ci riguarda utilizzeremo la versione 3 (cfr : Python2vsPython3)
Quello che ci occorre per iniziare a programmare è installare un interprete sulla nostra macchina. Ma prima di farlo è bene capire cosa sia un notebook: tra qualche riga vi presenteremo un modo per installare Python e tutto quello che ci serve in una sola mossa.
Notebooks
Come vi abbiamo anticipato nel primo incontro, abbiamo deciso di presentare gli argomenti sotto forma di notebook, il che ci permette di integrare testo e codice in maniera esteticamente piacevole. Ci sono due modi per seguire la sessione di coding:
- Il primo è utilizzare Google Colaboratory (https://colab.research.google.com/) , detto Colab, che è sostanzialmente un modo per eseguire codice python tramite browser. È molto utile poiché permette a più persone di lavorare sullo stesso file contemporaneamente e da macchine diverse.
- Il secondo è utilizzare Jupyter Notebook (https://jupyter.org), ovvero un analogo di Colab ma in versione locale.
Il primo non richiede alcuna installazione. Al contrario il secondo è da installare: per fare ciò ci sono diversi modi ma ci concentreremo su uno in particolare che risolve molti possibili problemi implicitamente. Utilizzeremo Anaconda (https://www.anaconda.com/distribution/), una distribuzione che ci permette di installare Python e le librerie fondamentali per il Machine Learning in un colpo solo.
Sul sito di Anaconda troverete diversi installers e a seconda del sistema operativo, tutto quello che dovete fare è scaricare il pacchetto e installarlo tramite l’interfaccia grafica dedicata. Badate bene che è possibile scegliere, per ogni sistema operativo, tra due versioni di Anaconda: quella per Python 2 e quella per Python 3. Scegliete la seconda, in quanto abbiamo deciso di utilizzare Python 3 come detto prima.
Di seguito le istruzioni per l’installazione (https://docs.anaconda.com/anaconda/install/). Con Anaconda non dovreste avere nessun problema a eseguire il codice che vi proporremo.
A questo punto ci sono due modi per avviare Jupyter:
- Cercando tra i programmi Anaconda e cliccandoci sopra è possibile aprire Jupyter tramite la comoda GUI (interfaccia grafica) ;
- Oppure tramite il terminale di Anaconda (dovrebbe essere sempre tra i programmi), aprendolo e scrivendo “jupyter notebook” (all’interno della cartella di interesse) è possibile aprire Jupyter. Da quest’ultimo potrete selezionare il file da aprire, contrassegnato dall’estensione .ipynb, oppure crearne uno nuovo.
Programmazione scientifica in Python
Per chi di voi non avesse mai utilizzato Python ma qualche altro linguaggio di programmazione oppure per chi si sentisse arrugginito, vi proponiamo diversi tutorial per entrare nell’ottica di Python.
# Tutorials dal corso ASTR599 (programmazione scientifica per l’astrofisica) di Jake VanderPlas : https://github.com/jakevdp/2013_fall_ASTR599/
Come avrete notato questi tutorial sono situati in cartelle sul sito Github, uno standard per la pubblicazione di codice. Permette di fare molte cose, non ci soffermeremo su questo, ma per chi di voi fosse interessato a capirne un po’ di più (https://guides.github.com/activities/hello-world/).
Per quanto ci riguarda basta cliccare nella casella verde con scritto “Clone or download” e dopodichè cliccare su “Download ZIP” . Una volta scaricato il contenuto, spostate la cartella nel vostro spazio di lavoro e accedetevi con Jupyter Notebook.
Nella cartella “notebooks” all’interno della master directory troverete diversi notebooks utili.
Non è necessario guardarli tutti, i notebooks da fare necessariamente sono : 00_intro.ipynb , 01_basic_training.ipynb, 02_advanced_data_structures.ipynb, 03_IPython_intro.ipynb, 04_Functions_and_modules.ipynb, 05_NumpyIntro.ipynb , 06_MatplotlibIntro.ipynb, 08_ScipyIntro.ipynb
## Una guida per esplorare l’Inferno dantesco del Machine Learning: (https://github.com/virgili0/Virgilio). Un ringraziamento speciale va al collega Giacomo Ciarlini (https://github.com/clone95), creatore di questo progetto.
### Scipy Lectures Notes (http://scipy-lectures.org/intro/) . Sito introduttivo, sempre sulla programmazione scientifica. [su quest’altro un po’ di Fisica per farvi prendere bene, il livello è un po’ più avanzato : https://scipython.com ]
#### Per un ripasso/revisione di alcune tecniche utili in Machine Learning, il sito di Chris Albon è ciò che fa per voi : https://chrisalbon.com
Un paio di libri, nei limiti della legalità:
Libro1 (sempre da Jake Vanderplas, ottimo per Data Science, nei primi capitoli c’è una intro a Python) https://github.com/jakevdp/PythonDataScienceHandbook
Libro2 (guida introduttiva in ITA, utile come reference) https://fraccaro.org/python/guida_python_3_ita.pdf
Buon divertimento !
[Per maggiori informazioni o problemi con l’installazione scriveteci alla mail mljcunito@gmail.com e possiamo incontrarci in Facoltà per sistemare tutto]
Link al codice su github: https://github.com/MLJCUnito/Tensorshow