Apply a Hyper-Parameter Optimization¶
Here, we describe how to define an experiment that should perform a hyper-parameter optimization mode.
Configure your experiment¶
To run experiments programmatically, the core software library PyKEEN should be used. To run PyKEEN in hyper-parameter optimization (HPO) mode, please set execution_mode to HPO_mode.In HPO mode several values can be provided for the hyper-parameters from which different settings will be tested based on the hyper-parameter optimization algorithm. The possible values for a single hyper-parameter need to be provided as a list. The maximum_number_of_hpo_iters defines how many HPO iterations should be performed.
config = dict(
training_set_path = 'data/corpora/compath.tsv',
test_set_ratio = 0.1,
execution_mode = 'HPO_mode',
kg_embedding_model_name = 'TransE',
embedding_dim = [50,100,150]
normalization_of_entities = 2, # corresponds to L2
scoring_function = [1,2], # corresponds to L1
margin_loss = [1,1.5,2],
learning_rate = [0.1,0.01],
batch_size = [32,128],
num_epochs = 1000,
maximum_number_of_hpo_iters = 5,
filter_negative_triples = True,
random_seed = 2,
preferred_device = 'cpu',
)
Run your experiment¶
The experiment will be started with the run function, and in the output directory the exported results will be saved.
results = pykeen.run(
config=config,
output_directory=output_directory,
)
Access your results¶
Show all keys contained in results
:
print('Keys:', *sorted(results.results.keys()), sep='\n ')
Access trained KGE model¶
results.results['trained_model']
Access the losses¶
results.results['losses']
Access evaluation results¶
results.results['eval_summary']