ankane/onnxruntime

在 PHP 中运行 ONNX 模型

v0.2.3 2024-09-17 20:03 UTC

This package is auto-updated.

Last update: 2024-09-17 20:03:53 UTC


README

🔥 ONNX Runtime - 用于 ML 模型的高性能评分引擎 - 针对 PHP

查看示例

Build Status

安装

运行

composer require ankane/onnxruntime

将脚本添加到 composer.json 中以下载共享库

    "scripts": {
        "post-install-cmd": "OnnxRuntime\\Vendor::check",
        "post-update-cmd": "OnnxRuntime\\Vendor::check"
    }

然后运行

composer install

入门

加载模型并做出预测

$model = new OnnxRuntime\Model('model.onnx');
$model->predict(['x' => [1, 2, 3]]);

ONNX 模型库下载预训练模型

获取输入

$model->inputs();

获取输出

$model->outputs();

获取元数据

$model->metadata();

从流中加载模型

$stream = fopen('model.onnx', 'rb');
$model = new OnnxRuntime\Model($stream);

获取特定输出

$model->predict(['x' => [1, 2, 3]], outputNames: ['label']);

会话选项

use OnnxRuntime\ExecutionMode;
use OnnxRuntime\GraphOptimizationLevel;

new OnnxRuntime\Model(
    $path,
    enableCpuMemArena: true,
    enableMemPattern: true,
    enableProfiling: false,
    executionMode: ExecutionMode::Sequential, // or Parallel
    freeDimensionOverridesByDenotation: null,
    freeDimensionOverridesByName: null,
    graphOptimizationLevel: GraphOptimizationLevel::None, // or Basic, Extended, All
    interOpNumThreads: null,
    intraOpNumThreads: null,
    logSeverityLevel: 2,
    logVerbosityLevel: 0,
    logid: 'tag',
    optimizedModelFilepath: null,
    profileFilePrefix: 'onnxruntime_profile_',
    sessionConfigEntries: null
);

运行选项

$model->predict(
    $inputFeed,
    outputNames: null,
    logSeverityLevel: 2,
    logVerbosityLevel: 0,
    logid: 'tag',
    terminate: false
);

推理会话 API

您还可以使用遵循 Python API 的推理会话 API。

$session = new OnnxRuntime\InferenceSession('model.onnx');
$session->run(null, ['x' => [1, 2, 3]]);

还包括 Python 示例模型。

OnnxRuntime\Datasets::example('sigmoid.onnx');

GPU 支持

Linux 和 Windows

下载适当的 GPU 发布版本 并设置

OnnxRuntime\FFI::$lib = 'path/to/lib/libonnxruntime.so'; // onnxruntime.dll for Windows

然后使用

$model = new OnnxRuntime\Model('model.onnx', providers: ['CUDAExecutionProvider']);

Mac

使用

$model = new OnnxRuntime\Model('model.onnx', providers: ['CoreMLExecutionProvider']);

历史记录

查看变更日志

贡献

鼓励每个人都来帮助改进这个项目。以下是一些你可以帮助的方式

开始开发

git clone https://github.com/ankane/onnxruntime-php.git
cd onnxruntime-php
composer install
composer test