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 generateTasks(num_tasks): """ Genera un numero dado de redes preparadas para iniciar su entrenamiento y las guarda como tareas en el gran json de tareas. """ # Generamos un pool de redes nets_list = createRandomNetPool(num_tasks) # Las transformamos a formato json json_list = [info_handler.CL_trainer2json(x) for x in nets_list] # Cargamos el gran json de tareas big_task_json = info_handler.loadTheBigTaskJson() # Acumulamos las tareas for jsoned_task in json_list: net_name = jsoned_task["model_name"] big_task_json[net_name] = jsoned_task # ¿hacemos copia antes? # Guardamos el gran json con las nuevas tareas acumuladas info_handler.saveTheBigTaskJson(big_task_json) # Enviamos mensaje de aviso if num_tasks == 1: sendMSG("Añadiendo 1 tarea al gran json") else: sendMSG("Añadiendo " + str(num_tasks) + " tareas al gran json")