...
Code Block | ||||
---|---|---|---|---|
| ||||
def train_model(model, train_data, validation_data, max_epoches, batch_size, environment): # train model (e.g. until max_epoches are reached or validation loss increases) model.train(train_data, validation_data, max_epoches, batch_size) # store model parameters within database post_data = { "algorithm_run_id": environment['runtime']['run_id'], "config_data": model.get_parameters(), "description": "" } response = requests.post('http://localhost:8004/algoconfig/%s' % environment['algorithm']['cfg_name'], json=post_data).json() if response['has_error'] == True: raise ValueError('An error occurred while storing the algorithm\'s configuration:\n%s' % response['error']) return response['data'] def test_model(model, test_data, environment): # test model (e.g. predict the test_data) model.run(test_data) # store predictions within database prediction_data = [] for prediction in model.get_predictions(): prediction_data.append({ "time_start": prediction.['time_start'], "time_duration": prediction.['time_duration'], "probability": prediction.['probability'], "intensity_min": prediction.['intensity_min'], "intensity_max": prediction.['intensity_max'], "meta": { "harp": prediction.['harp'], "nar": prediction.['nar'] }, "data": prediction.['data'] }) post_data = { "algorithm_config": environment['algorithm']['cfg_name'], "algorithm_run_id": environment['runtime']['run_id'], "prediction_data": prediction_data, "source_data": [get_fc_id(row) for row in test_data] } response = requests.post('http://localhost:8004/predictionset', json=post_data).json() if response['has_error'] == True: raise ValueError('An error occurred while storing the algorithm\'s prediction set:\n%s' % response['error']) return response['data'] |
The post_data structure is equivalent to the algorithm_config_data or prediction_data definitions as given by the routes /algoconfig/{name} and /prediction/bulk:
|
|
Source Code
...