Demostración principal de PyTorch 2024
Descripción general
Este proyecto es una demostración única de las capacidades de PyTorch, creada para la Conferencia PyTorch 2024. Combina visión por computadora y síntesis de audio para generar sonidos melódicos basados en imágenes de entrada. La aplicación utiliza una red neuronal PyTorch para analizar imágenes y extraer características, que luego se utilizan para crear música variada de estilo electrónico. Este proyecto de código abierto, nativo de la nube, muestra el poder del aprendizaje automático en aplicaciones creativas.
Características
- Sube cualquier imagen y recibe una composición musical única basada en esa imagen.
- Análisis de imágenes impulsado por PyTorch utilizando un modelo CNN personalizado
- Generación de música dinámica influenciada por las características de la imagen.
- Interfaz basada en web para una fácil interacción
- Aplicación dockerizada para una implementación y escalabilidad sencillas
- Configuración de Kubernetes para implementación nativa en la nube
Pila de tecnología
- Frontend: reacciona con Tailwind CSS para diseñar
- Backend: Flask con Flask-CORS para API
- ML Framework: PyTorch para análisis de imágenes
- Procesamiento de audio: NumPy y SciPy para generación de sonido
- Procesamiento de imágenes: Almohada (PIL) para manejo de imágenes
- Contenedorización: Docker y Docker Compose
- Orquestación: Kubernetes
Requisitos previos
- Docker y Docker Compose para el desarrollo local
- Clúster de Kubernetes para implementación en la nube (Kind se puede utilizar para el desarrollo local de Kubernetes)
Empezando
Desarrollo Local
Clonar el repositorio:
git clone https://github.com/onlydole/pytorch-keynote-2024.git
cd pytorch-keynote-2024
Construya y ejecute el contenedor Docker:
docker compose up --build
Abra su navegador web y navegue hasta http://localhost:8080
Implementación de Kubernetes
Si no tiene un clúster de Kubernetes, puede usar Kind para crear uno localmente:
kind create cluster --config cluster.yml
Aplique las configuraciones de Kubernetes:
kubectl apply -f kubernetes/
Accede a la aplicación:
Abra su navegador web y navegue hasta http://localhost:8080
Cómo funciona
- El usuario carga una imagen a través de la interfaz web basada en React.
- La imagen se envía al backend de Flask.
- La imagen es procesada por una CNN PyTorch personalizada, extrayendo varias características.
- Estas características influyen en diferentes aspectos de la generación musical.
- El backend genera un clip de audio único.
- El audio generado se envía de vuelta al navegador del usuario para su reproducción.
Guiones
-
startup.sh
: Script para iniciar la aplicación. -
shutdown.sh
: Script para cerrar la aplicación.
Contribuyendo
¡Agradecemos las contribuciones! No dude en enviar una solicitud de extracción.
CI/CD
Este proyecto utiliza GitHub Actions para crear y publicar la imagen del contenedor. Puede ver el estado de ejecución más reciente utilizando las insignias en la parte superior de este LÉAME.
Licencia
Este proyecto tiene la licencia Apache 2.0. Consulte el archivo de LICENCIA para obtener más detalles.
Expresiones de gratitud
- Equipo de PyTorch por su potente marco de aprendizaje profundo
- Equipo Flask para el marco web ligero.
- Equipo de reacción para la biblioteca frontend
- La comunidad de código abierto para diversas herramientas y bibliotecas utilizadas en este proyecto.