模型数据集预测

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:
  • offline_ids (List[int]) – 离线预测id数组

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:
  • offline_id (int64) – 离线预测id

Returns:
  • OfflinePrediction – 离线预测详情

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:
  • Int – 服务状态:0未预测, 1预测中, 2预测结束, 3预测失败

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:
  • project_id (uint64) – 项目id

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:
  • OfflinePrediction – 离线预测实例

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:
  • OfflinePredictionDetail – 离线预测实例

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:
  • offline_id (int64) – 离线预测id

Returns:
  • OfflinePredictionDetail – 离线预测详情

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)