def readOneTask(): """ Carga el gran json de tareas, extrae una tarea y lo guarda. Devuelve la tarea transformada en CL_trainer. Si no quedan tareas, devuelve None """ # Cargamos el gran json de tareas big_task_json = info_handler.loadTheBigTaskJson() # Informamos de la cantidad de tareas que quedan sendMSG("Quedan " + str(len(big_task_json)) + " tareas por hacer.") # Comprobamos si quedan tareas para devolver if len(big_task_json) > 0: # Seleccionamos una tarea ret_key = list(big_task_json.keys())[0] # Extraemos la tarea (eliminandola del json) ret_jsoned_net = big_task_json.pop(ret_key) # Guardamos el json info_handler.saveTheBigTaskJson(big_task_json) # Devolvemos la tarea return info_handler.json2CL_trainer(ret_jsoned_net) else: sendMSG("No quedan tareas por hacer en el gran json de tareas", is_warning=True) return None
def showRanking(num_nets_to_show=-1): """ Muestra el ranking usando el gran json de entrenamientos realizados. En el futuro se usara un diccionario ordenado, no teniendo que ordenar al cargar el json. """ # Cargamos el gran json big_trained_json = info_handler.loadTheBigTrainedJson() # Transformamos a lista de CL_trainer net_list = [] for key in big_trained_json: net = info_handler.json2CL_trainer(big_trained_json[key]) net_list.append(net) # Ordenamos la lista sorted_net_list = sortNetPool(net_list) # Mostramos el ranking por pantalla con colores __printRanking(sorted_net_list, colored_text=True, num_nets_to_show=num_nets_to_show) # Obtenemos el ranking como str sin colores str_ranking = __printRanking(sorted_net_list, just_return_str=True, num_nets_to_show=num_nets_to_show, str_type="tab") # Enviamos ranking al admin sendMSG("Mostrando ranking de " + str(len(sorted_net_list)) + " redes:") sendMSG(str_ranking, dont_print=True)
def trainNetsForTestingRanking(num_nets): """ Entrenamos un numero concreto de redes solo para testear que las diversas operaciones funcionan correctamente. """ # Creamos una lista de redes train_list = createRandomNetPool(num_nets) # Entrenamos todas las redes trainNetPool(train_list) # Ordenamos el ranking train_list = sortNetPool(train_list) # Transformamos la lista a texto en json y viceversa new_list = [] for net in train_list: json_data = info_handler.CL_trainer2json(net) new_obj = info_handler.json2CL_trainer(json_data) new_list.append(new_obj) # Mostramos el ranking printRanking(train_list) # Mostramos el ranking obtenido de hacer la transformacion a json y # viceversa. Deberia ser igual al ranking anterior printRanking(new_list)