...
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
...