Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa Próxima revisión Ambos lados, revisión siguiente | ||
clase:iabd:pia:1eval:tema01 [2021/10/18 09:09] cesar |
clase:iabd:pia:1eval:tema01 [2023/10/21 12:32] admin [Ejercicios] |
||
---|---|---|---|
Línea 113: | Línea 113: | ||
from sklearn.datasets import load_iris | from sklearn.datasets import load_iris | ||
from matplotlib.colors import LightSource | from matplotlib.colors import LightSource | ||
+ | import random | ||
iris=load_iris() | iris=load_iris() | ||
Línea 126: | Línea 127: | ||
np.random.seed(5) | np.random.seed(5) | ||
tf.random.set_seed(5) | tf.random.set_seed(5) | ||
+ | random.seed(5) | ||
model=Sequential() | model=Sequential() | ||
Línea 183: | Línea 184: | ||
np.random.seed(5) | np.random.seed(5) | ||
tf.random.set_seed(5) | tf.random.set_seed(5) | ||
+ | random.seed(5) | ||
</ | </ | ||
Línea 350: | Línea 352: | ||
==== Ejercicio 2 ==== | ==== Ejercicio 2 ==== | ||
- | Vamos a ver como se comportan las predicciones haciendo distintos cambios en nuestra | + | Modifica ahora la red neuronal |
- | Los cambios son los siguientes: | + | |
- | * **No random seed** | + | * La 2º capa oculta tenga 6 neuronas |
- | Deberás eliminar las siguientes líneas: | + | * La 3º capa oculta tenga 4 neuronas |
- | <sxh python> | + | * La 4º capa seguirá teniendo 1 neurona |
- | np.random.seed(5) | + | |
- | tf.random.set_seed(5) | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | * **2 épocas** | + | |
- | + | ||
- | En el método '' | + | |
- | + | ||
- | + | ||
- | * **Red neuronal pequeña** | + | |
- | + | ||
- | Modifica el código python de la red neuronal original de forma que: | + | |
- | | + | |
- | * La 2º capa oculta tenga 6 capas en vez de 12 | + | |
- | * La 3º capa oculta tenga 4 capas en vez de 6 | + | |
Usando la web [[http:// | Usando la web [[http:// | ||
- | Ahora muestra los resultados | + | Ahora muestra los resultados |
- | | **Largo Sépalo** | + | | **Largo Sépalo** |
- | | 5.4 | + | | 5.4 |
- | | 5.5 | + | | 5.5 |
Línea 483: | Línea 469: | ||
</ | </ | ||
+ | Imprime el valor de la fila 56 tanto de la '' | ||
- | Deberás hacer 3 redes neuronales distintas ( llamadas **A**, **B** y **C**) y comprobar las predicciones | + | < |
+ | #Para que los datos no se muestren | ||
+ | np.set_printoptions(suppress=True) | ||
- | Usando la web [[http:// | + | print(x[56],y[56]) |
+ | </sxh> | ||
- | | Datos | Resultado red neuronal **A** | Resultado red neuronal **B** | Resultado red neuronal **C** | ** Resultado Real ** | | + | Ahora indica los valores de la '' |
- | | | + | |
- | | | + | |
- | | | + | |
- | | | + | |
- | Para ver los datos junto a su predicción puedes usar las siguientes líneas: | ||
- | <sxh python> | ||
- | np.set_printoptions(threshold=np.inf) | ||
- | np.set_printoptions(suppress=True) | ||
- | np.column_stack((x, | ||
- | </ | ||
- | Y mostrará algo simular a ésto: | + | Crea una red neuronal en las que en cada capa tenga los siguientes números de neuronas: |
- | <sxh base> | + | |
- | array([[ | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | 25.38 , | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | 24.99 , | + | |
- | | + | |
- | | + | |
- | + | ||
- | + | ||
- | ..................... | + | |
- | + | ||
- | + | ||
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | 25.74 , | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | </ | + | |
- | Siendo la última columna es resultado que debe dar. Y las 30 primeras columnas la entrada al método '' | + | | **Nº Capa** |
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
- | ==== Ejercicio 6 ==== | + | Modifica el número |
- | En este caso, vamos a utilizar un conjunto | + | |
- | Los datos se obtienen de la siguiente | + | Rellena |
- | <sxh python> | + | | **Fila Datos** |
- | from sklearn.datasets import load_wine | + | | |
+ | | | ||
- | wine=load_wine() | + | ¿Es una buena red? |
- | x = wine.data | ||
- | y = wine.target | ||
- | </ | ||
- | Igual que el ejercicio anterior, deberás hacer 3 redes neuronales distintas ( llamadas **A**, **B** y **C**) y comprobar las predicciones con 4 conjuntos | + | Modifica ahora la función de pérdida para que en vez de ser '' |
- | | Datos | Resultado red neuronal **A** | Resultado red neuronal **B** | Resultado red neuronal **C** | ** Resultado Real ** | | + | Vuelve a mostrar la tabla anterior |
- | | | + | |
- | | | + | |
- | | | + | |
- | | | + | |
+ | ==== Ejercicio 6 ==== | ||
+ | Repite el ajercicio anterior pero ahora eliminando las lineas de la semilla del los generadores de números aleatorios. | ||
+ | <shx> | ||
+ | np.random.seed(5) | ||
+ | tf.random.set_seed(5) | ||
+ | random.seed(5) | ||
+ | </ |