_evaluator
Módulo para evaluar el rendimiento de un solucionador.
Este módulo proporciona funciones para evaluar el rendimiento de un solucionador en un conjunto de datos. Incluye funciones para evaluar la eficiencia de búsqueda y el rendimiento temporal de un solucionador.
NOTA: La funcionalidad de este módulo requiere dependencias opcionales. Para usarlas,
por favor instala AlphaCube con el extra 'eval': pip install 'alphacube[eval]'
get_dataset
def get_dataset(
filename="deepcubea-dataset--cube3.json",
cache_dir=os.path.expanduser("~/.cache/alphacube")
)
Obtiene un conjunto de datos de un archivo o lo descarga si no existe.
Argumentos:
filename
str - El nombre de archivo del conjunto de datos.
Devuelve:
dict
- El conjunto de datos.
evaluate_search_efficiency
def evaluate_search_efficiency(
solver,
num_samples=1000,
beam_width=2**10 if device.type == "cpu" else 2**13,
verbose=False
)
Evalúa la eficiencia de búsqueda del modelo. (También disponible como solver.benchmark
)
Esta función resuelve un conjunto de mezclas e informa sobre métricas clave de rendimiento, proporcionando una instantánea de la eficiencia del solucionador bajo condiciones específicas.
Argumentos:
solver
- La instancia del solucionador a evaluar.num_samples
int - El número de mezclas a resolver para la evaluación.beam_width
int - El ancho del haz (beam width) a usar para la búsqueda.verbose
bool - Si se debe mostrar una barra de progreso.
Devuelve:
dict
- Un diccionario que contiene los resultados promedio para el tiempo de resolución (t
), la longitud de la solución (lmd
) y los nodos expandidos (nodes
).
evaluate_temporal_performance
def evaluate_temporal_performance(
solver,
num_samples=1000,
t_standard=1.0,
beam_width_space=2 ** np.arange(6 if device.type == "cpu" else 10, 16 + 1),
verbose=False
)
Evalúa el rendimiento del modelo en una tarea temporal posterior.
Esta función evalúa el rendimiento del modelo resolviendo un conjunto de mezclas utilizando diferentes anchos de haz. Luego, ajusta un predictor para modelar la relación entre la longitud de la solución y el tiempo, y predice la longitud de la solución en t=1.
Argumentos:
solver
- El solucionador a evaluar.num_samples
int - El número de muestras a usar para la evaluación.t_standard
float - El tiempo estándar.beam_width_space
array - Los anchos de haz a usar para la evaluación.verbose
bool - Si se debe mostrar una barra de progreso.
Devuelve:
float
- La longitud de la solución predicha en t=1.