Introduzione al Corso, Obiettivi e Testi di Riferimento
BASIC_NEURAL++: nessuna libreria di machine learningiguoftb2. Tutte le comunicazioni ufficiali passano da lì.BASIC_NEURAL++.





g++), traduce il codice sorgente in linguaggio macchina (binario).auto) e gli smart pointer..png o .jpg: le useremo in formato CSV, una riga per immagine; la prima colonna è la cifra, le altre 784 sono i pixel, da 0 a 255.BASIC_NEURAL++BASIC_NEURAL++.Matrix non è solo una griglia di numeri: è un oggetto che conosce le proprie dimensioni e sa moltiplicarsi per un’altra matrice;Due domande da portarsi a casa. La prima ha una risposta numerica, la seconda no: le slide restano sul sito, ragionateci con calma.
1. Interpretato o compilato: quanto cambia? Addestrare la rete del corso, con dieci passaggi su tutte le 60.000 immagini di MNIST, richiede circa \(3 \cdot 10^{11}\) moltiplicazioni (da dove venga il numero lo vedremo nelle prossime lezioni). Un ciclo in Python puro esegue circa \(10^7\) moltiplicazioni al secondo, lo stesso ciclo in C++ compilato circa \(10^9\). Quanto dura l’addestramento nei due casi?
2. Quanto pesa un numero scritto in chiaro? Un pixel di MNIST è un byte: un intero fra 0 e 255. Nel file CSV lo stesso pixel è scritto in cifre decimali, seguito da una virgola. Quanti caratteri costa? Stimate di quanto il file è più grosso dell’informazione che contiene, e chiedetevi chi paga il conto quando il programma lo legge.
1. In Python puro servono \(3 \cdot 10^{11} / 10^7 = 3 \cdot 10^4\) s, più di otto ore; in C++ \(3 \cdot 10^{11} / 10^9 = 300\) s, cinque minuti. NumPy si avvicinerebbe al C++, perché le sue funzioni sono codice compilato.
Un fattore 100 separa una prova che sta dentro un laboratorio da una che occupa una notte: è il motivo per cui tre slide di questa lezione parlano di linguaggi compilati. In laboratorio misurerete il tempo vero del vostro codice: tenete da parte questi numeri e confrontateli.
2. Traccia: 0, sono due caratteri, 255, sono quattro, per un solo byte di informazione. E ogni carattere va letto, riconosciuto come cifra e ricomposto in un numero: 60.000 righe per 785 valori fanno 47 milioni di numeri da ricostruire, a ogni lettura del dataset. È esattamente il lavoro del Laboratorio 12.