Gestión, Clonación y Migración de Entornos Conda e Instalación Offline de PyTorch

Configuración de Repositorios Espejo en Conda

Los servidores predeterminados de Anaconda pueden presentar latencia elevada dependiendo de la región geográfica. Para optimizar la velocdiad de descarga de paquetes, es recomendable configurar un repositorio espejo (mirror). A continuación, se muestra cómo agregar y priorizar un mirror, como el proporcionado por TUNA:

conda config --prepend channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --prepend channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls true

Clonación de Entornos Virtuales

Al trabajar en servidores compartidos, es una buena práctica duplicar un entorno existente antes de realizar modificaciones. Esto evita alterar la configuración de otros usuarios o romper dependencias en entornos de producción.

Clonar por Nombre de Entorno

Si se desea replicar un entorno llamado env_produccion a uno nuevo llamado env_desarrollo:

conda create --name env_desarrollo --clone env_produccion

Clonar por Ruta de Directorio

También es posible clonar un entorno especificando su ruta absoluta en el sistema de archivos:

conda create --name env_pruebas --clone /opt/anaconda3/envs/env_produccion

Clonar el Entorno Base

El entorno base no puede ser empaquetado directamente para migración. Si se requiere transferir, primero debe ser clonado a un entorno con nombre:

conda create --name env_base_copia --clone base

Empaquetado y Migración de Entornos

Para transferir un entorno completo a otra máquina, se utiliza la herramienta conda-pack. Esta utilidad crea un archivo comprimido con todas las dependencias y binarios, permitiendo una migración exacta.

Instalación de conda-pack

conda install --channel conda-forge conda-pack

Generación del Archivo Comprimido

Para empaquetar el entorno env_desarrollo en un archivo .tar.gz:

conda pack --name env_desarrollo --output env_desarrollo_migracion.tar.gz

El archivo resultante puede transferirse al servidor destino. Es fundamental que la versión de Anaconda en la máquina de destino sea compatible. Una vez transferido, se extrae en el directorio envs de la instalación de Conda de destino.

Activación en el Servidor Destino

conda activate env_desarrollo

Instalación Offline de PyTorch

Instalar PyTorch directaemnte desde los repositorios oficiales mediante pip o conda a menudo resulta en errores de timeout debido al gran tamaño de los paquetes. Una alternativa robusta es la instalación local utilizando archivos .whl.

Descarga de Paquetes Wheel

Acceda al repositorio oficial de wheels de PyTorch y descargue las versiones específicas de torch y torchvision que coincidan con su versión de Python y CUDA. Se recomienda utilizar un gestor de descargas para evitar interrupciones de red.

Instalación Local en el Entorno Virtual

Primero, active su entorno virtual:

conda activate env_deep_learning

Luego, navegue al directorio donde se descargaron los archivos e instálelos. Es aconsejable instalar primero las dependencias básicas como numpy:

pip install numpy
pip install torch-2.1.0+cu118-cp310-cp310-linux_x86_64.whl
pip install torchvision-0.16.0+cu118-cp310-cp310-linux_x86_64.whl --no-deps

El parámetro --no-deps evita que pip intente resolver dependencias en línea, forzando el uso estricto de los paquetes locales descargados.

Diagnóstico de Conflictos entre CUDA y PyTorch

Si el entorno presenta fallos al utilizar la GPU, generalmente se debe a una incompatibilidad entre la versión del controlador NVIDIA, el toolkit de CUDA y la compilación de PyTorch.

Verificación de la Versión de CUDA del Sistema

Ejecute el siguiente comando para comprobar la versión máxima de CUDA soportada por el controlador:

nvidia-smi

Si el comando no es reconocido en Windows, asegúrese de agregar la ruta C:\Program Files\NVIDIA Corporation\NVSMI a las variables de entorno del sistema (PATH).

Verificación del Compilador CUDA

nvcc --version

Validación en Python

Ingrese al intérprete de Python dentro de su entorno virtual y ejecute:

import torch
print(torch.__version__)
print(torch.cuda.is_available())

Si torch.cuda.is_available() retorna False, revise que la versión de CUDA con la que fue compilado el wheel de PyTorch sea igual o menor a la versión máxima soportada por su controlador NVIDIA.

Etiquetas: Anaconda Conda PyTorch CUDA Python

Publicado el 7-11 23:56