Source code for archai.common.notebook_helper

# Copyright (c) Microsoft Corporation.
# Licensed under the MIT license.

from typing import Union, Optional
from pathlib import Path
import pandas as pd


[docs]def get_search_csv(output_path: Union[str, Path], iteration_num: Optional[int] = -1) -> pd.DataFrame: """Reads the search csv file from the output path and returns a pandas dataframe Args: output_path (Union[str, Path]): Path to the output directory iteration_num (int, optional): Search iteration to read from. Defaults to -1, which will point to the last iteration Returns: pd.DataFrame: Pandas dataframe with the search state """ if iteration_num == -1: search_csv_path = max(Path(output_path).glob("search_state_*.csv"), key=lambda x: int(x.stem.split("_")[-1])) else: search_csv_path = Path(output_path) / f"search_state_{iteration_num}.csv" if not search_csv_path.is_file(): raise FileNotFoundError(f"Search csv file not found at {search_csv_path}") df = pd.read_csv(search_csv_path) return df
[docs]def get_arch_abs_path(archid: str, downloaded_folder: Union[str, Path], iteration_num: Optional[int] = -1) -> Path: """Returns the absolute path to the architecture file Args: archid (str): Architecture id downloaded_folder (Union[str, Path]): Path to the downloaded folder iteration_num (int, optional): Search iteration to read from. Defaults to -1, which will point to the last iteration Returns: Path: Absolute path to the architecture file """ if iteration_num == -1: dir_path = max(Path(downloaded_folder).glob("pareto_models_iter_*"), key=lambda x: int(x.stem.split("_")[-1])) else: dir_path = Path(downloaded_folder) / f"pareto_models_iter_{iteration_num}" file_path = dir_path / archid if not file_path.is_file(): raise FileNotFoundError(f"File not found at {file_path}") return file_path.absolute()