def train_PSO_PSO_ANN(inputs, res_ex, boundary, draw_graph=False): dim = 9 + N_H_LAYER * 2 opso = PSO(dim, lambda param: fitness_mean(inputs, res_ex, 50, 25, *scale_args(param, boundary)), max_iter=20, n_particle=10, n_neighbor=4, inertia_start=0.5, inertia_end=0.5, comparator=minimise, min_bound=MIN_BOUND, max_bound=MAX_BOUND) print("\nRunning...\n") if draw_graph: opso.set_graph_config(inputs=inputs, res_ex=res_ex, opso=True) opso.run() return opso
def train_ANN_PSO(inputs, res_ex, max_iter, n_particle, n_neighbor, nb_h_layers, nb_neurons_layer, min_bound, max_bound, cognitive_trust, social_trust, inertia_start, inertia_end, velocity_max, activations, draw_graph=False): nb_neurons = set_nb_neurons(len(inputs[0]), nb_neurons_layer, nb_h_layers) # print(nb_neurons, n_neighbor, activations) ann = ANN(nb_neurons=nb_neurons, nb_layers=len(nb_neurons), activations=activations) dim = sum(nb_neurons[i] * nb_neurons[i + 1] for i in range(len(nb_neurons) - 1)) + len(nb_neurons) - 1 pso = PSO(dim, lambda params: fitness_for_ann(params, ann, inputs, res_ex), max_iter=max_iter, n_particle=n_particle, n_neighbor=n_neighbor, comparator=minimise, min_bound=min_bound, max_bound=max_bound, cognitive_trust=cognitive_trust, social_trust=social_trust, inertia_start=inertia_start, inertia_end=inertia_end, velocity_max=velocity_max, endl='', version=2007) if draw_graph: pso.set_graph_config(inputs=inputs, res_ex=res_ex) pso.run() return pso, ann
def train_PSO_PSO_ANN(inputs, res_ex, boundary, opso_arg, pso_arg, draw_graph=False): dim = 11 opso = PSO(dim, lambda param: fitness_mean(inputs, res_ex, *pso_arg.values(), *scale_args(param, boundary)), **opso_arg, comparator=minimise, min_bound=train_help.MIN_BOUND, max_bound=train_help.MAX_BOUND, endl="11") print("\nRunning...\n") if draw_graph: opso.set_graph_config(inputs=inputs, res_ex=res_ex, opso=True) opso.run() return opso