Periódicamente tengo la necesidad de tocar la tecnología por mí mismo y creo que tener ciertos conocimientos de aprendizaje automático no me va a venir nada mal. Aunque diría que el 90% de los sistemas son CRUDs (altas, bajas, consultas y modificaciones) lo que de verdad va a aportar valor es hacerlos un poco más listos.
¿Acaso el ERP, CRM, sistema de control de gestión o de recursos humanos de tu empresa te dice cosas muy listas o se las dices tú a él a través de los menús? ¿Se anticipa a tus necesidades? ¿Te ofrece oportunidades? Pues creo que hay una oportunidad clara futura.
Bueno, paso a paso. Voy a empezar por la instalación de Tensorflow y la preparación del entorno para trabajar con Python 3. Como siempre pasa la primera vez, te tiras toda una mañana navegando entre enlaces desactualizados hasta que entiendes qué falla y luego en tres minutos eres capaz de resolverlo. Espero que esto os valga para ahorrar tiempo.
El resumen es sencillo:
- Instala Python (no la última versión sino una compatible de con TensorFlow).
- Configura el entorno Mac que por defecto utiliza la versión 2 de Python y no la 3, modificando las variables de entorno de arranque y en el Shell por defecto (Terminal).
- Ejecuta el script de instalación de TensorFlow y prueba en local.
- Configura un entorno cómodo para probar, como puede ser Microsoft Visual Studio Code.
- Configura las extensiones para trabajar con Python y Tensorflow.
Estoy usando un ordenador no muy actual (del 2015), a ver cómo se comporta. Luego podremos comparar con otro más moderno la diferencia de rendimiento.
Vamos a la página de Tensorflow:
Leed las instrucciones y comprobareis que la versión máxima permitida (es la 3.8 a 25 noviembre de 2020). No intentéis instalar mas modernas que no va.
9Vamos a instalar Python, que es un pre-requisito. OJITO aquí y elegir 3.8.
Hay una artículo muy útil de cómo instalar Python 3 en Mac. Ya el dibujo es bastante ilustrativo sobre los líos que hay de dependencias y versiones.
En Mac viene instalado por defecto Python 2. Para poder utilizar el 3 vamos a hacer algo sencillo, que es modificar las variables de entorno del arranque.
Vamos a modificar el .bash_profile en nuestro Mac para crear el alias de Python y pip (gestión de paquetes, que ya viene instalado por defecto con la versión 3 de Python).
También recordad que nuestro terminal trae por defecto el Shell zsh (aplicación terminal) y que si no modificamos el .zshrc no veremos las variables aplicadas.
Comprobar el Shell porque sino os podéis volver locos por no saber que os falla al cambiar el .bash_profile.
Vemos los comandos para crear el alias y para invocar el mismo .bash_profile desde el .zshrc (la configuración del Shell por defecto).
Verificamos que las versiones son las correctas de Python.
Ahora ejecutamos los comandos de instalación de TensorFlow.
pip install --upgrade pip pip install tensorflow
No hay nada relevante por aquí. Como siempre comprobar que no sale ninguna pantalla de aviso diciendo que no tenéis permisos (y usar sudo si es necesario) o que alguna dependencia (como pip) esta desactualizada (y te ofrece el comando para actualizarlo).
Vamos a probar que funciona la instalación con el siguiente comando (de https://tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/install.html) en la consola de Python.
Si algo os falla revisad este artículo que puede ser útil para configurar TensorFlow si llegados aquí algo no funciona.
Ahora vamos a instalar un entorno de desarrollo para Python. Microsoft Visual Studio Code no parece mala opción. Tengo algunos otros tutoriales de cómo utilizar cursores múltiples y otras cosas chulas.
Descargamos la última versión de MS Visual Studio Code. Una vez instalado comprobar que aparece, en la parte de Customize, Python. Pulsamos.
También podemos descargarnos los Snippets de TensorFlow en la sección de extensiones.
Fijaos que pregunta por la versión del interprete que queremos utilizar (mirad siempre en la parte inferior derecha si os ofrece opciones).
Creamos una carpeta para nuestro proyecto y un fichero hola mundo. Dando al play comprobamos que todo funciona.
Ojito si estáis en Mac con poner una carpeta de iCloud porque os podéis volver locos con los paths en algunas actualizaciones. Mejor que no haya espacios dentro del path (otra tontada que me ha dado quebraderos de cabeza).
No parece mala idea el crearnos unos entornos virtuales para no volvernos locos con variables de entorno y dependencias en nuestros proyectos Python.
python -m venv .venv source .venv/bin/activate
Simplemente, confirmar que queremos trabajar con ese entorno virtual. Como es de esperar, es posible que tengamos que instalar en los entornos virtuales TensorFlow.
Ahora vamos a usar otro fichero de prueba (plato.py) para ver que las dependencias se importan bien.
Ya tenemos el entorno funcionando, ahora solo nos tenemos que poner con nuestro proyecto en Tensorflow.
Bueno, como siempre, esto que es una chorrada. Te pude costar una mañana o, como ahora reproduzco en otro Mac, puedes tenerlo en minutos.
Suerte y si quieres más, puedes seguir con mi tutorial donde vemos una revisión de los ejemplos de TensorFlow con código en MS Visual Studio Code y Notebooks Jupyter en colab.