ankane / onnxruntime
在 PHP 中运行 ONNX 模型
v0.2.3
2024-09-17 20:03 UTC
Requires
- php: >= 8.1
- ext-ffi: >= 8.1
Requires (Dev)
- phpunit/phpunit: ^10
README
🔥 ONNX Runtime - 用于 ML 模型的高性能评分引擎 - 针对 PHP
查看示例
安装
运行
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