ホームページ  >  記事  >  バックエンド開発  >  Catboost C 評価ライブラリ API を構築するにはどうすればよいですか?

Catboost C 評価ライブラリ API を構築するにはどうすればよいですか?

WBOY
WBOY転載
2024-02-06 08:15:08540ブラウズ

如何构建Catboost C评估库API?

質問内容

一部のプログラミング言語(golangとpython)でcatboostモデルを使用する必要があります。 (パフォーマンスと互換性の点で) 最良のオプションは、C または C API の評価ライブラリを使用することです。公式ドキュメントに従って C API をコンパイルしましたが、動作させるために解決する必要のある問題がたくさんあります。

これらは、C で評価ライブラリを作成しようとしたときに遭遇した問題です:

1.

リーリー
リーリー ###解決:###

    modelhandle
  1. 変数を次のように再定義することで、問題 #1 を解決しました。 リーリー この変更を加えた後、C プログラムはコンパイルできますが、新しいエラーが発生します:
  2. リーリー

セグメンテーション違反は、質問 2 にリストされている警告に関連しています。それを修正するには変数を再定義する必要があります:

    リーリー ###そして### リーリー
  1. コードの修正から C コードのコンパイル方法まで、完全な解決策をコメントに追加します。

正解

これが完全な解決策です:

catboost リポジトリのクローンを作成します:

    git クローン https://github.com/catboost/catboost.git

catboost リポジトリのローカル コピーから catboost ディレクトリを開きます。

  1. 評価ライブラリを構築します (私は共有ライブラリを選択しましたが、必要なライブラリを選択できます)。私の場合、

    --target-platform

    パラメータを変更する必要がありました。mac m1 と macos ventura 13.1 を使用しており、clang バージョンは 14.0.0 です:
  2. リーリー c ファイルを作成します。修正された C サンプルコード:

  3. リーリー ######考慮する:######
    setpredictiontype
  1. を apt_probability
  2. に設定しました
私たちのモデルは複数のカテゴリを予測するため、

result[4] となります。

一度に 1 つのレコードのみを予測する必要があるため、
    calcmodelpredictionsingle
  • メソッドを使用します。
  • C コードをコンパイルします: リーリー
  • 重要: 警告やエラー メッセージが表示されないことを確認してください。
これで実行できるようになります:
重要な注意:

catboost モデル ファイルが program.out と同じパスにあることを確認してください。

リーリー

以上がCatboost C 評価ライブラリ API を構築するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。