File size: 4,851 Bytes
29099e4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
# 🚀 Guía de Deployment en Hugging Face Spaces

## Opción 1: Deployment Automático (Recomendado)

### Paso 1: Crear cuenta en Hugging Face
1. Ve a https://huggingface.co/join
2. Crea una cuenta gratuita
3. Verifica tu email

### Paso 2: Crear un nuevo Space
1. Ve a https://huggingface.co/new-space
2. Configura tu Space:
   - **Owner**: Tu usuario
   - **Space name**: `gan-interactive-demo` (o el nombre que prefieras)
   - **License**: MIT
   - **Select the Space SDK**: Gradio
   - **Space hardware**: CPU basic (gratuito)
   - **Visibility**: Public

3. Haz clic en "Create Space"

### Paso 3: Subir archivos
Hay dos formas de subir los archivos:

#### Método A: Interfaz Web (Más fácil)
1. En tu Space recién creado, haz clic en "Files" → "Add file" → "Upload files"
2. Arrastra y suelta estos archivos:
   - `app.py`
   - `requirements.txt`
   - `README.md`
   - Carpeta `models/` completa (con generator.h5, discriminator.h5, etc.)

#### Método B: Git (Más profesional)
```bash
# Clonar el repositorio del Space
git clone https://huggingface.co/spaces/TU_USUARIO/gan-interactive-demo
cd gan-interactive-demo

# Copiar archivos
cp /home/ubuntu/gan_interactive_demo/app.py .
cp /home/ubuntu/gan_interactive_demo/requirements.txt .
cp /home/ubuntu/gan_interactive_demo/README.md .
cp -r /home/ubuntu/gan_interactive_demo/models .

# Commit y push
git add .
git commit -m "Initial commit: GAN Interactive Demo"
git push
```

### Paso 4: Esperar el build
- Hugging Face Spaces automáticamente detectará los archivos
- Instalará las dependencias de `requirements.txt`
- Lanzará la aplicación `app.py`
- El proceso toma ~2-3 minutos

### Paso 5: ¡Listo!
Tu aplicación estará disponible en:
`https://huggingface.co/spaces/TU_USUARIO/gan-interactive-demo`

---

## Opción 2: Deployment Local para Pruebas

### Requisitos
```bash
pip install -r requirements.txt
```

### Ejecutar localmente
```bash
python app.py
```

La aplicación estará disponible en: `http://localhost:7860`

---

## Opción 3: Usar Hugging Face CLI

### Instalar CLI
```bash
pip install huggingface_hub
```

### Login
```bash
huggingface-cli login
```

### Crear y subir Space
```bash
cd /home/ubuntu/gan_interactive_demo

# Crear Space
huggingface-cli repo create gan-interactive-demo --type space --space_sdk gradio

# Subir archivos
huggingface-cli upload gan-interactive-demo . --repo-type space
```

---

## Troubleshooting

### Error: "No module named 'tensorflow'"
- Asegúrate de que `requirements.txt` esté en el directorio raíz
- Verifica que incluya `tensorflow==2.15.0`

### Error: "Cannot load model"
- Verifica que la carpeta `models/` esté subida correctamente
- Asegúrate de que contenga:
  - `generator.h5`
  - `discriminator.h5`
  - `latent_vectors.npy`
  - `generated_images.npy`

### La aplicación es muy lenta
- Considera usar un Space con GPU (requiere suscripción)
- O reduce el número de vectores latentes pre-calculados en el código

### Error de memoria
- Reduce `BATCH_SIZE` en el código de entrenamiento
- Usa menos vectores latentes para visualización (de 1000 a 500)

---

## Configuración Avanzada

### Usar GPU en Hugging Face Spaces
1. Ve a Settings de tu Space
2. Cambia "Space hardware" a "T4 small" o superior
3. Nota: Requiere suscripción PRO ($9/mes)

### Personalizar la interfaz
Edita `app.py` y modifica:
- `custom_css`: Para cambiar estilos
- `theme=gr.themes.Soft()`: Prueba otros temas como `Base()`, `Glass()`, `Monochrome()`
- Añade más tabs con `with gr.Tab("Nombre"):`

### Optimizar rendimiento
```python
# En app.py, añade cache
@functools.lru_cache(maxsize=100)
def generate_from_latent_index(index):
    # ... código ...
```

---

## Recursos Adicionales

- **Documentación de Gradio**: https://gradio.app/docs/
- **Hugging Face Spaces Docs**: https://huggingface.co/docs/hub/spaces
- **Ejemplos de Spaces**: https://huggingface.co/spaces

---

## Compartir con tus Estudiantes

Una vez desplegado, simplemente comparte el URL:
```
https://huggingface.co/spaces/TU_USUARIO/gan-interactive-demo
```

Tus estudiantes podrán:
- ✅ Acceder sin necesidad de cuenta
- ✅ Usar la aplicación sin instalar nada
- ✅ Experimentar con la GAN en tiempo real
- ✅ Ver el código fuente (si el Space es público)

---

## Para la Clase

### Antes de la clase:
1. Despliega la aplicación
2. Prueba que funcione correctamente
3. Ten el URL listo para compartir

### Durante la clase:
1. Proyecta la aplicación
2. Demuestra cada tab interactivamente
3. Deja que los estudiantes experimenten desde sus dispositivos
4. Usa la visualización del espacio latente como "momento wow"

### Después de la clase:
- Los estudiantes pueden seguir experimentando
- Pueden clonar el Space para su proyecto final
- Pueden modificar el código para sus propias GANs

---

¡Buena suerte con tu clase! 🎓✨