模型数据集预测
OfflinePrediction (APIObject)
dataclass
OfflinePrediction(project_id: int = 0, offline_id: int = 0, ret: int = 0, status: int = 0, task_type: int = 0, models_metrics: trafaret.base.Any = None, models_metric_overview: trafaret.base.Any = None, models_plot_data: trafaret.base.Any = None, models_pred_prob: trafaret.base.Any = None, models_preview_data: trafaret.base.Any = None, models_preview_data_cols: trafaret.base.Any = None)
delete_predictions(offline_ids)
classmethod
批量删除预测
| Parameters: |
|
|---|
Source code in deepwisdom/models/offline_predictions.py
@classmethod
def delete_predictions(cls, offline_ids: List[int]):
"""批量删除预测
Args:
offline_ids (List[int]): 离线预测id数组
"""
data = {
"offline_ids": offline_ids
}
rsp = cls._client._delete(API_URL.PREDICTION_DELETE, data)
if "data" in rsp:
return rsp['data']
return None
get_predict_detail(offline_id)
classmethod
获取离线预测详情
| Parameters: |
|
|---|
| Returns: |
|
|---|
Source code in deepwisdom/models/offline_predictions.py
@classmethod
def get_predict_detail(cls, offline_id: int) -> 'OfflinePrediction':
"""获取离线预测详情
Args:
offline_id (int64): 离线预测id
Returns:
OfflinePrediction: 离线预测详情
"""
data = {
"offline_id": offline_id,
}
rsp = cls._server_data(API_URL.PREDICTION_DETAIL, data)
if rsp:
rsp['offline_id'] = offline_id
checked = OfflinePrediction._converter.check(rsp)
filtered = OfflinePrediction._filter_data(checked)
return OfflinePrediction(**filtered)
get_predict_status(self)
获取离线预测状态
| Returns: |
|
|---|
Source code in deepwisdom/models/offline_predictions.py
def get_predict_status(self) -> Int:
"""获取离线预测状态
Returns:
Int: 服务状态:0未预测, 1预测中, 2预测结束, 3预测失败
"""
data = {
"offline_id": self.offline_id,
}
rsp = self._server_data(API_URL.PREDICTION_DETAIL, data)
if rsp:
rsp['offline_id'] = self.offline_id
checked = self._converter.check(rsp)
filtered = self._filter_data(checked)
if rsp['ret'] == -1:
rsp['status'] = 3
self = self.from_server_data(filtered)
return rsp["status"]
return Int(0)
list_predictions(project_id)
classmethod
获取预测列表
| Parameters: |
|
|---|
Source code in deepwisdom/models/offline_predictions.py
@classmethod
def list_predictions(cls, project_id: int) -> List['OfflinePredictionListMember']:
"""获取预测列表
Args:
project_id (uint64): 项目id
"""
data = {
"project_id": project_id,
}
server_data = cls._server_data(API_URL.PREDICTION_LIST, data)
init_data = [dict(OfflinePredictionListMember._safe_data(item)) for item in server_data]
return [OfflinePredictionListMember(**data) for data in init_data]
predict(model_inst_id, dataset_id)
classmethod
开始离线预测
| Returns: |
|
|---|
Source code in deepwisdom/models/offline_predictions.py
@classmethod
def predict(cls, model_inst_id: int, dataset_id: int) -> "OfflinePrediction":
"""开始离线预测
Returns:
OfflinePrediction: 离线预测实例
"""
data = {
"model_inst_id": model_inst_id,
"dataset_id": dataset_id,
}
rsp = cls._client._post(API_URL.PREDICTION_PREDICT, data)
if "data" in rsp and rsp['data']['offline_id']:
return cls.get_predict_detail(rsp['data']['offline_id'])
return None
wait_for_result(self)
等待预测结果
| Returns: |
|
|---|
Source code in deepwisdom/models/offline_predictions.py
def wait_for_result(self):
"""等待预测结果
Returns:
OfflinePredictionDetail: 离线预测实例
"""
status = self.get_predict_status()
while status == 1:
status = self.get_predict_status()
if status == PREDICT_STATUS_FINISH or status == PREDICT_STATUS_FAILED:
break
time.sleep(3)
self.status = status
return status
OfflinePredictionListMember (APIObject)
dataclass
OfflinePredictionListMember(offline_id: int = 0, offline_status: int = 0, dataset_name: str = '', dataset_id: int = 0, model_inst_id: int = 0)
get_predict_detail(self)
获取离线预测详情
| Parameters: |
|
|---|
| Returns: |
|
|---|
Source code in deepwisdom/models/offline_predictions.py
def get_predict_detail(self) -> 'OfflinePrediction':
"""获取离线预测详情
Args:
offline_id (int64): 离线预测id
Returns:
OfflinePredictionDetail: 离线预测详情
"""
data = {
"offline_id": self.offline_id,
}
rsp = self._server_data(API_URL.PREDICTION_DETAIL, data)
if rsp:
rsp['offline_id'] = self.offline_id
checked = OfflinePrediction._converter.check(rsp)
filtered = OfflinePrediction._filter_data(checked)
return OfflinePrediction(**filtered)