Example #1
0
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
Example #2
0
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")