Guía del Proyecto NeuralOptimalTransport

NeuralOptimalTransport es una iniciativa de código abierto basada en PyTorch que implementa el enfoque de "Transporte Óptimo Neuronal". Este método, presentado en ICLR 2023 como una publicación destacada, fue desarrollado por Alexander Korotin, Daniil Selikhanovych y Evgeny Burnaev. Su objetivo principal es calcular mapas y planes de transporte óptimo en espacios de alta dimensión, tanto para costos de transporte fuertes como débiles, utilizando redes neuronales.

El proyecto ofrece una implementación reproducible en PyTorch, adecuada para problemas de juguete (unidimensionales y bidimensionales), así como para tareas de traducción de imágenes no emparejadas. La estructura del proyecto está bien organizada, soporta cómputo multi-GPU y se acompaña de ejemplos detallados en Jupyter Notebooks.

Inicio Rápido

Configuración del Entorno

Se recomienda crear un entorno virtual usando conda o venv:

conda create -n ot_neural_env python=3.9
conda activate ot_neural_env

Alternativamente, con venv:

python3 -m venv ot_neural_env
source ot_neural_env/bin/activate

Instalación de Dependencias

Una vez activado el entorno virtual, instale las librerías necesarias:

pip install -r requirements.txt

Instalación de PyTorch y TorchVision

Instale torch y torchvision según su configuración de sistema y versión de CUDA:

pip install torch torchvision torchaudio

Ejecución de Ejemplos

El proyecto incluye varios ejemplos en formato Jupyter Notebook. Para iniciarlos, ejecute:

jupyter notebook

Navegue hasta el directorio notebooks/ y abra cualquiera de los archivos, como toy_problems_1d.ipynb o image_translation_strong_cost.ipynb, para ejecutar los demostrativos.

Casos de Uso y Buenas Prácticas

Casos de Uso

  • Problemas de Juguete (1D y 2D): Se proporcionan demostraciones para problemas unidimensionales y bidimensionales, ilustrando el cálculo de transporte óptimo bajo costos débiles. Ejecute toy_problems_1d.ipynb y toy_problems_2d.ipynb para explorarlos.
  • Traducción de Imágenes No Emparejadas: El proyecto también aborda la traducción de imágenes sin correspondencia directa, aplicando el método con costos de transporte fuertes y débiles. Verifique image_translation_strong_cost.ipynb y image_translation_weak_cost.ipynb.

Buenas Prácticas

  • Soporte Multi-GPU: Aproveche la capacidad multi-GPU del proyecto para acelerar significativamente los cálculos en hardware compatible.
  • Preprocesamiento de Datos: Algunos conjuntos de datos pueden requerir etapas de preprocesamiento. Consulte datasets/preprocessing_example.ipynb para ver un ejemplo de cómo procesar imágenes de rostros de anime alineados.
  • Ajuste de Parámetros: En el contexto de costos de transporte débiles, el parámetro gamma (o un valor similar) puede ser ajustado para controlar la diversidad de las muestras generadas.

Proyectos del Ecosistema

Proyectos Relacionados

  • Kernel Optimal Transport: Este proyecto, también de ICLR 2023, es un complemento que ofrece una implementación de transporte óptimo neuronal basada en kernels.
  • Wasserstein Barycenter Estimation: Un trabajo de NeurIPS 2022 que presenta redes iterativas de Wasserstein para la estimación de baricentros.
  • Benchmarking Neural Optimal Transport: Publicado en NeurIPS 2021, este proyecto realiza una evaluación comparativa del rendimiento de los solucionadores de transporte óptimo neuronal.

Estos proyectos, junto con NeuralOptimalTransport, contribuyen a un ecsoistema maduro que abarca diversas facetas de los prolbemas de transporte óptimo.

Etiquetas: PyTorch Transporte Óptimo aprendizaje profundo Visión por Computadora ICLR

Publicado el 7-30 15:00