ray.tune.ResultGrid.get_dataframe#

ResultGrid.get_dataframe(filter_metric: str | None = None, filter_mode: str | None = None) pandas.DataFrame[source]#

Return dataframe of all trials with their configs and reported results.

Per default, this returns the last reported results for each trial.

If filter_metric and filter_mode are set, the results from each trial are filtered for this metric and mode. For example, if filter_metric="some_metric" and filter_mode="max", for each trial, every received result is checked, and the one where some_metric is maximal is returned.

Example

from ray import train
from ray.train import RunConfig
from ray.tune import Tuner

def training_loop_per_worker(config):
    train.report({"accuracy": 0.8})

result_grid = Tuner(
    trainable=training_loop_per_worker,
    run_config=RunConfig(name="my_tune_run")
).fit()

# Get last reported results per trial
df = result_grid.get_dataframe()

# Get best ever reported accuracy per trial
df = result_grid.get_dataframe(
    filter_metric="accuracy", filter_mode="max"
)
Parameters:
  • filter_metric – Metric to filter best result for.

  • filter_mode – If filter_metric is given, one of ["min", "max"] to specify if we should find the minimum or maximum result.

Returns:

Pandas DataFrame with each trial as a row and their results as columns.