Przejrzyj wersje próbne funkcji Hyperopt
Jeśli używasz funkcji Hyperopt do wypróbowania wielu kombinacji hiperparametrów, możesz przejrzeć szczegóły każdej wersji próbnej. Te szczegóły można przejrzeć na dwa sposoby:
- Wyświetl przebieg platformy MLflow dla każdej wersji próbnej.
- Użyj klasy Trial, aby przechwycić szczegóły przebiegu.
Wyświetlanie przebiegu platformy MLflow dla każdej wersji próbnej
W usłudze Azure Databricks wywołania funkcji Hyperopt funkcji fmin automatycznie generują przebiegi eksperymentów MLflow, które można wyświetlić w portalu usługi Azure Databricks; zapewniając łatwy sposób wyświetlania pełnego zestawu hiperparametrów i metryk dla każdej wersji próbnej, jak pokazano poniżej:
Korzystanie z klasy Trial
Funkcja Hyperopt zawiera klasę Próbną, która rejestruje szczegóły dla każdej wersji próbnej uruchamianej podczas wywołania funkcji fmin. W poniższym przykładzie kodu pokazano, jak używać klasy Trial .
from hyperopt import Trials
# Create a Trials object to track each run
trial_runs = Trials()
argmin = fmin(
fn=objective,
space=search_space,
algo=algo,
max_evals=100,
trials=trial_runs)
print("Best param values: ", argmin)
# Get details from each trial run
print ("trials:")
for trial in trial_runs.trials:
print ("\n", trial)
Pełne szczegółowe dane wyjściowe dla kolekcji prób przypominają ten przykład:
{'state': 2, 'tid': 0, 'spec': None, 'result': {'loss': -0.8571428571428571, 'status': 'ok'}, 'misc': {'tid': 0, 'cmd': ('domain_attachment', 'FMinIter_Domain'), 'workdir': None, 'idxs': {'Iterations': [0], 'Regularization': [0]}, 'vals': {'Iterations': [1], 'Regularization': [0.4965634473237057]}}, 'exp_key': None, 'owner': None, 'version': 0, 'book_time': datetime.datetime(2023, 3, 17, 22, 45, 24, 993000), 'refresh_time': datetime.datetime(2023, 3, 17, 22, 46, 30, 374000)}
{'state': 2, 'tid': 1, 'spec': None, 'result': {'loss': -0.8857142857142857, 'status': 'ok'}, 'misc': {'tid': 1, 'cmd': ('domain_attachment', 'FMinIter_Domain'), 'workdir': None, 'idxs': {'Iterations': [1], 'Regularization': [1]}, 'vals': {'Iterations': [9], 'Regularization': [0.8446551490616772]}}, 'exp_key': None, 'owner': None, 'version': 0, 'book_time': datetime.datetime(2023, 3, 17, 22, 46, 30, 379000), 'refresh_time': datetime.datetime(2023, 3, 17, 22, 47, 34, 155000)}
{'state': 2, 'tid': 2, 'spec': None, 'result': {'loss': -0.9523809523809523, 'status': 'ok'}, 'misc': {'tid': 2, 'cmd': ('domain_attachment', 'FMinIter_Domain'), 'workdir': None, 'idxs': {'Iterations': [2], 'Regularization': [2]}, 'vals': {'Iterations': [9], 'Regularization': [0.3931915704555482]}}, 'exp_key': None, 'owner': None, 'version': 0, 'book_time': datetime.datetime(2023, 3, 17, 22, 47, 34, 160000), 'refresh_time': datetime.datetime(2023, 3, 17, 22, 48, 45, 986000)}
...
Napiwek
Aby uzyskać więcej informacji na temat szczegółów zarejestrowanych przez klasę Trial, zobacz dokumentację funkcji Hyperopt.