def accuracy(X, parametros, y, activacion="relu"): probs, caches = feed_foward_model(X, parametros, activacion) labels = (probs >= 0.5) * 1 accuracy = np.mean(labels == y) * 100 return accuracy
def gradiente_aprendisaje(X, y, dimensiones, curvaaprendisaje=0.01, num_iterations=200, print_costo=True, theta="relu", initialization_method="he"): np.random.seed(1) costo_list = [] if initialization_method == "zeros": parametros = inicializar_parametros_cero(dimensiones) elif initialization_method == "random": parametros = initialize_parameters_random(dimensiones) else: parametros = inicializar_parametros_2(dimensiones, initialization_method) for i in range(num_iterations): AL, caches = feed_foward_model(X, parametros, theta) costo = obtener_costo(AL, y) grados = modelo_backpropagation(AL, y, caches, theta) parametros = update_parametros(parametros, grados, curvaaprendisaje) if (i + 1) % 100 == 0 and print_costo: print(f"{i + 1} : {costo:.4f}") if i % 100 == 0: costo_list.append(costo) return parametros