Reputation: 964
I would like to automatically set up Azure machine learning endpoints that don't necessarily have the same amount of variables. I am able to programmatically add new endpoints that are trained on different data as long as they have the same column and variable names (headers).
When I try to create a new endpoint using a different column count it works. But when I try to call it it gives me errors.
I set up an experiment where the default endpoint is accepting two parameters 'x' and 'y'. Then I trained it on a dataset using three columns 'x1', 'x2' and 'y'. The 'Train Model' module in the training experiment is picking out column 1.
Calling the endpoint that was trained using three variables with three input columns:
{
"error": {
"code": "LibraryExecutionError",
"message": "Module execution encountered an internal library error.",
"details": [
{
"code": "TableSchemaColumnCountMismatch",
"target": " (AFx Library)",
"message": "data: The table column count (3) must match the schema column count (2)."
}
]
}
}
Calling the endpoint that was trained using three variables with ony two input columns:
{
"error": {
"code": "LibraryExecutionError",
"message": "Module execution encountered an internal library error.",
"details": [
{
"code": "ScoredFeaturesMustMatchTrainingFeatures",
"target": "Score Model (AFx Library)",
"message": "table: The data set being scored must contain all features used during training, missing feature(s): 'x2'."
}
]
}
}
It seems to be remembering the setup of the default endpoint and expects all other endpoints to conform to it's metadata. Is there any way around this?
Upvotes: 0
Views: 1094
Reputation: 1
Azure machine learning expects data it's run with.
For example predictive experiment uses data from the training. The score model expects all the columns, including the column to score(x1).
When you predict x1 is unknown so you don't want to include it, with the select columns row I removed x1. The score model doesn't expect x1 anymore.
Upvotes: 0