Descárgate el fichero base de predecir precios de casas en el que se han añadido algunas funciones para analizar la red. El fichero de datos es el mismo; recógelo de la práctica inicial.
Tendrás que definir lo mismo que en la primera práctica:
Tras el ajuste, te pasa una batería de análisis globales de la red ajustada. ¿Qué conclusiones sacas de los números y gráficos que te muestra? A partir de los pesos, derivadas o similares intenta hacer una interpretación de la respuesta de la red ¿Cómo son de coherentes unos análisis con otros?
Puede que al analizar la red llegues a la conclusión de que le sobra complejidad. Puedes dejarlo, pero eso va a introducir ruido. Una forma de quitarlo es manualmente: volver a hacer la red con menos conexiones o procesadores. Para las pruebas, te puede convenir guardar y cargar la red (para ahorrarte ajustes). Puedes cargar una red ya definida, con red=torch.load(nombrefichero)
y guardarla con torch.save(red,nombfich)
Partimos de una red original grande. Ajusta una red con muchos procesadores y guárdala. En las restantes pruebas directamente la cargas sin ajustarla otra vez.
parametros=[]] for capa in red.modules(): if isinstance(capa, torch.nn.Linear): parametros.append((capa,'weight')) torch.nn.utils.prune.global_unstructured(parametros,pruning_method=torch.nn.utils.prune.L1Unstructured,amount=cuantorecorte)
¿Dejas los valores de pesos preservados o reajustas a los supervivientes?
Haz pruebas.En el mismo ciclo... if len(capa.weight)>2:# si vas a quitar 2 en cada capa torch.nn.utils.prune.ln_structured(capa,name='weight',amount=2,n=2,dim=0)