Saltar al contenido

# deep-learning-en-python-y-tensorflow

Deep Learning en Python y Tensorflow

Volver a la portada del curso
Lectura (Markdown)

Configuración del Entorno de Trabajo

Sección 1 · Introducción al Deep Learning

Configuración del entorno de trabajo

En este curso vas a entrenar redes que etiquetan solas las fotos de ropa del catálogo de PyShop. Antes de la primera red necesitas un entorno que funcione igual hoy y dentro de un mes: una versión de Python compatible, TensorFlow instalado en un entorno virtual y semillas fijas para que cada corrida dé los mismos números. Esta lección deja todo listo y te enseña a comprobarlo.

Qué versión de Python usar

TensorFlow publica paquetes solo para ciertas versiones de Python. La guía oficial de instalación avisa que, desde TensorFlow 2.21, Python 3.9 ya no está soportado y recomienda de 3.10 a 3.13; los metadatos del paquete 2.21.0 dicen lo mismo (Requires-Python >=3.10, con clasificadores de 3.10 a 3.13). Si tu Python es más nuevo que 3.13, pip no encontrará un paquete compatible y la instalación fallará. El curso usa:

HerramientaVersión del curso
Python3.13.14
TensorFlow2.21.0 (CPU)
Keras3.15.1
NumPy2.4.6

Keras es la API de alto nivel con la que se definen y entrenan los modelos. Desde hace varias versiones viene como paquete propio (import keras) y se instala junto con TensorFlow.

Instalación en un entorno virtual

Un entorno virtual aísla las bibliotecas del curso de las de otros proyectos. En una terminal:

python -m venv .venv
.venv\Scripts\activate          # Windows
source .venv/bin/activate       # Linux y macOS
python -m pip install --upgrade pip
pip install tensorflow matplotlib

La guía oficial pide actualizar pip antes de instalar: TensorFlow requiere pip 19.0 o superior en Linux y Windows, y 20.3 o superior en macOS. La descarga pesa varios cientos de megabytes, así que tarda un poco.

CPU o GPU

Una GPU acelera el entrenamiento, pero no es necesaria para este curso: los modelos son pequeños y la red convolucional del proyecto se entrena en menos de un minuto en una CPU de escritorio. Lo que conviene saber según tu sistema:

  • Linux: pip install tensorflow[and-cuda] instala TensorFlow con las bibliotecas de CUDA para GPU NVIDIA.
  • Windows nativo: TensorFlow 2.10 fue la última versión con GPU en Windows nativo. Desde la 2.11, para usar la GPU hay que instalar TensorFlow dentro de WSL2 (Windows 10 19044 o superior). Fuera de WSL2, TensorFlow corre en la CPU y lo avisa con un mensaje al arrancar.
  • macOS: no hay soporte oficial de GPU; se instala tensorflow y se usa la CPU.
  • Google Colab: notebooks en el navegador, sin instalar nada y con TensorFlow listo. La versión gratuita ofrece GPU con acceso limitado y sin garantía: sus límites de uso cambian.

Comprobar la instalación y fijar semillas

Este bloque muestra las versiones, los dispositivos que ve TensorFlow y comprueba que las semillas funcionan:

import os
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "2"

import keras
import tensorflow as tf

print(tf.__version__, keras.__version__)
print(tf.config.list_physical_devices())

keras.utils.set_random_seed(42)
tf.config.experimental.enable_op_determinism()
print(tf.random.uniform([3]).numpy().round(4))
keras.utils.set_random_seed(42)
print(tf.random.uniform([3]).numpy().round(4))

Salida en el equipo del curso (Windows, sin WSL2):

2.21.0 3.15.1
[PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU')]
[0.6646 0.441  0.3529]
[0.6646 0.441  0.3529]

La lista de dispositivos solo tiene la CPU. Si tuvieras una GPU configurada, aparecería otra entrada con device_type='GPU'; para pedir solo esas, usa tf.config.list_physical_devices("GPU").

Las dos últimas líneas son iguales porque la semilla se fijó en 42 antes de cada sorteo. keras.utils.set_random_seed fija a la vez las semillas de Python, NumPy y TensorFlow. Los pesos iniciales de una red son aleatorios y los lotes se barajan: sin semilla, dos entrenamientos del mismo modelo dan accuracy distintas en el tercer decimal y no sabrías si un cambio mejoró el modelo o fue suerte. enable_op_determinism pide además operaciones deterministas, a cambio de algo de velocidad. En el curso las dos líneas están en la función semillas() de los datos del curso, y se llama antes de crear cada modelo.

Los mensajes de log

Al importar TensorFlow aparecen mensajes en la terminal que no son errores. La variable de entorno TF_CPP_MIN_LOG_LEVEL filtra los del motor en C++: "1" oculta los informativos, "2" también las advertencias y "3" también los errores. Tiene que definirse antes de import tensorflow; por eso va arriba del bloque. Con TensorFlow 2.21 en Windows, el mensaje sobre «oneDNN custom operations» se imprime aunque el nivel sea 3: es informativo y se puede ignorar. Desactivarlo con TF_ENABLE_ONEDNN_OPTS=0 cambia el orden de algunos cálculos y puede mover los resultados en los últimos decimales, así que el curso lo deja activado.

Trampas comunes

  • Python demasiado nuevo. Si pip responde que no hay versión compatible de tensorflow, revisa python --version antes de buscar otra causa.
  • Instalar fuera del entorno virtual. Si import tensorflow falla en el notebook pero funcionó en la terminal, el kernel del notebook usa otro Python. Elige el kernel del .venv.
  • Esperar GPU en Windows nativo. Instalar CUDA no basta con TensorFlow 2.21: la GPU solo se usa dentro de WSL2.
  • Fijar la semilla después de crear el modelo. Los pesos se sortean al crear las capas; la semilla va antes.
  • Silenciar los avisos sin leerlos. Un nivel de log de 3 también oculta errores reales del motor. Para el curso basta con 2.

El notebook primeros-pasos-con-tensorflow repite estas comprobaciones, crea los primeros tensores y descarga Fashion-MNIST. Ejecútalo completo: si llega al final sin errores, tu entorno está listo para el resto del curso.

Recursos