Granska Hyperopt-utvärderingsversioner

Slutförd

När du använder Hyperopt för att prova flera kombinationer av hyperparametrar kan du granska informationen om varje utvärderingsversion. Du kan granska den här informationen på två sätt:

  • Visa MLflow-körningen för varje utvärderingsversion.
  • Använd klassen Utvärderingar för att samla in körningsinformation.

Visa MLflow-körningen för varje utvärderingsversion

I Azure Databricks genererar anrop till funktionen Hyperopt fmin automatiskt MLflow-experimentkörningar som du kan visa i Azure Databricks-portalen. Det ger dig ett enkelt sätt att visa hela uppsättningen hyperparametrar och mått för varje utvärdering, som du ser här:

Skärmbild av MLflow-körningen för en Hyperopt-utvärderingsversion.

Använda utvärderingsklassen

Hyperopt innehåller en utvärderingsklass som loggar information för varje utvärderingsversion som körs under ett fmin-funktionsanrop . I följande kodexempel visas hur du använder klassen Utvärderingsversioner .

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)

De fullständiga detaljutdata för en samling utvärderingsversioner liknar det här exemplet:

{'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)}

 ...

Dricks

Mer information om informationen som registrerats av klassen Trials finns i Hyperopt-dokumentationen.