>백엔드 개발 >Golang >Catboost C 평가 라이브러리 API를 구축하는 방법은 무엇입니까?

Catboost C 평가 라이브러리 API를 구축하는 방법은 무엇입니까?

WBOY
WBOY앞으로
2024-02-06 08:15:08631검색

如何构建Catboost C评估库API?

질문 내용

일부 프로그래밍 언어(golang 및 Python)에서 catboost 모델을 사용해야 합니다. 성능 및 호환성을 위한 가장 좋은 옵션은 C 또는 C++ API일 수 있는 평가 라이브러리를 사용하는 것입니다. 공식 문서에 따라 C API를 컴파일했는데, 제대로 작동하려면 해결해야 할 문제가 많습니다.

다음은 c에서 평가 라이브러리를 생성하려고 할 때 직면한 문제입니다:

1.

으아아아
으아아아

해결책:

  1. 우리는 modelhandle 변수를 다음과 같이 재정의하여 문제 #1을 해결했습니다.
으아아아

이렇게 변경하면 C 프로그램을 컴파일할 수 있지만 새로운 오류가 발생합니다.

으아아아
  1. 분할 오류는 질문 #2에 나열된 경고와 관련이 있습니다. 이 문제를 해결하려면 변수를 재정의해야 합니다.
으아아아

그리고

으아아아

코드 수정부터 C 코드 컴파일 방법까지 전체 솔루션을 댓글에 추가하겠습니다.


정답


완전한 솔루션은 다음과 같습니다.

  1. Clone catboost 저장소:

git 克隆 https://github.com/catboost/catboost.git

  1. catboost 저장소의 로컬 복사본에서 catboost 디렉터리를 엽니다.

  2. 평가 라이브러리를 구축합니다(저는 공유 라이브러리를 선택했지만 필요한 라이브러리를 선택할 수 있습니다). 제 경우에는 --target-platform 매개변수를 변경해야 했습니다. 저는 mac m1과 macos Ventura 13.1을 사용하고 있으며 clang 버전은 14.0.0입니다.

으아아아
  1. c 파일을 만듭니다. C 예제 코드 수정:
으아아아

고려 사항:

  • setpredictiontype을 apt_probability
  • 로 설정했습니다.
  • 저희 모델은 여러 클래스를 예측하므로 result[4].
  • 한 번에 하나의 레코드만 예측하면 되므로 calcmodelpredictionsingle 방법을 사용합니다.
  1. C 코드 컴파일:
으아아아

중요: 경고나 오류 메시지가 표시되지 않는지 확인하세요.

  1. 이제 실행할 수 있습니다:

중요: catboost 모델 파일이 program.out와 동일한 경로에 있는지 확인하세요.

으아아아

위 내용은 Catboost C 평가 라이브러리 API를 구축하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제