«[Figlio dell'uomo] Porgi l'orecchio e ascolta le parole di KGB
e applica la tua mente alla SUA istruzione
» Pv. 22,17

Qui si straparla di vari argomenti:
1. Il genere dei pezzi è segnalato da varie immagini, vedi Legenda
2. Per contattarmi e istruzioni per i nuovi lettori (occasionali e non) qui
3. L'ultimo corto è questo
4. Molti articoli di questo blog fanno riferimento a definizioni e concetti che ho enunciato nella mia Epitome gratuitamente scaricabile QUI. Tali riferimenti sono identificati da una “E” fra parentesi quadre e uno o più capitoli. Per esempio: ([E] 5.1 e 5.4)

martedì 4 dicembre 2018

Aggiornamento pitonesco

Come stabilito (v. Pitoni e bachi) ho cercato un minicorso su Keras.
Il mio interesse sta divenendo piuttosto specifico e così anche Google non mi ha dato moltissima scelta: il primo minicorso a cui ho dato un’occhiata è stato Keras Tutorial: How to get started with Keras, Deep Learning, and Python
Ho cercato di capire rapidamente come era impostato e mi sono reso conto che: 1. è estremamente recente (settembre 2018); 2. il tizio che gestisce il sito deve essere estremamente brillante; 3. passaggi molto dettagliati.
Insomma sembrava estremamente promettente ma, sempre nell’introduzione, spiegava come installare, oltre a Keras e TensorFlow, anche un certo OpenCV. Seguendo i vari collegamenti ho scoperto che questo OpenCV e una libreria gratuita per l’analisi delle immagini (infatti il minicorso si prefigge lo scopo di realizzare una rete neurale capace di distinguere fra immagini di cani, gatti e panda!).
Ora, considerando che il progetto è molto interessante, io non ho niente in contrario a installare una libreria in più o in meno, sempre però tenendo presente che il mio interesse è per Keras.
Così ho guardato le istruzioni per l’installazione di OpenCV e mi sono sembrate estremamente complicate: in pratica andava scaricato il sorgente e compilato il tutto sul proprio calcolatore. Così, mentre scorrevo le varie righe di comandi, pensavo ai “soliti” mezzi più semplici come, ad esempio, scaricare una versione precompilata tramite Synaptic e perché non fosse possibili usarli.
In fondo alle spiegazioni l’autore “mi rispondeva” spiegando che usare una versione precompilata “potrebbe anche funzionare” ma 1. non sarebbe stata l’ultima versione disponibile; 2. non sarebbe stata ottimizzata per il nostro calcolatore.
A questo punto mi sono detto: “Questo qui mi fa perdere troppo tempo su dettagli! A me non interesse usare l’ultimo codice disponibile né risparmiare qualche minuto di tempo mentre la rete si addestra: cerchiamo altro!”
Però, in effetti… da oggi (martedì) inizio adesso a pensare che l’autore non avesse tutti i torti…

Così ho provato un altro minicorso: Keras Tutorial: Deep Learning in Python.
Ero molto sospettoso perché questo minicorso si appoggia a un sito che vende corsi in linea e così temevo che fosse incompleto o che comunque, per leggerlo tutto, occorresse registrarsi.
In realtà l’accesso è completamente libero e gratuito e il corso è in effetti molto semplice (sta in un'unica pagina): una parte complessa e difficile per la costruzioni di rete neurali è trovare i dati per allenarla; sia il libro che sto leggendo che il precedente minicorso mettevano l’accento proprio su questo aspetto che però a me, al momento, non mi interessa molto; questo minicorso aggira il problema utilizzando dei dati sui dei vini portoghesi messi liberamente a disposizione da un’università americana. In pratica qui la raccolta dei dati si riduce a importare un paio di archivi in formato CSV…
Inoltre il minicorso è del maggio 2017, relativamente recente quindi, ma comunque mi ha dato ugualmente qualche problema.

Il minicorso era studiato per essere eseguito in linea ma io ho voluto replicare tutti i vari passaggi sul mio calcolatore installando via via quello che serviva (mi sono costruito un ambiente virtuale apposito come sembra sia la prassi con Python). Non ho trovato grossi problemi: ho installato quello che mancava con PIP e ho corretto dei problemi minori nella visualizzazione di alcune immagini (basate su una libreria che, ovviamente, non conoscevo ma che “a martellate” ho fatto funzionare).
Sul finale, quando la rete andava effettivamente addestrata, ho però dovuto installare TensorFlow ed ecco un grosso problema:
The TensorFlow library was compiled to use SSE4.2 instructions, but these aren't available on your machine.

Ho cercato su Google ma il problema non mi è parso di semplice soluzione così ho pensato a qualche alternativa.
La prima cosa che mi è venuta in mente è stato di copiare il codice e i dati nell’ambiente preparato per gli esercizi del mio libro (con l’eventuale idea di copiarmi brutalmente i vari archivi di TensorFlow nell’ambiente che avevo preparato io).
Qui il codice ha funzionato ma ho notato un avviso che nei giorni scorsi mi era sfuggito:
Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1
In altre parole il TensorFlow che mi funziona non usa le istruzioni SSE4.1 (che il mio CPU supporta) mentre il TensorFlow brutalmente installato tramite PIP usa le SSE4.2 (che invece il mio CPU non supporta)!
Ecco perché oggi ho rivalutato il consiglio dell’autore del primo minicorso di compilarsi ogni cosa sul proprio calcolatore: finito questo minicorso ritornerò sul suo e mi installerò, compilandolo come vuole lui, OpenCV…

Ci sarebbero poi da raccontare le mie scoperte su Keras ma ormai ho già scritto abbastanza per oggi…

Conclusione: Ah! Finito questo minicorso ho deciso di leggermi le istruzioni di Keras… io sono infatti uno di quelli che, in genere, non leggono le istruzioni!

Nessun commento:

Posta un commento