# deep-learning-en-python-y-tensorflow
Deep Learning en Python y Tensorflow
Volver a la portada del cursoConfiguració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:
| Herramienta | Versión del curso |
|---|---|
| Python | 3.13.14 |
| TensorFlow | 2.21.0 (CPU) |
| Keras | 3.15.1 |
| NumPy | 2.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
tensorflowy 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
pipresponde que no hay versión compatible detensorflow, revisapython --versionantes de buscar otra causa. - Instalar fuera del entorno virtual. Si
import tensorflowfalla 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.