Skip to content

Commit 66b7e36

Browse files
Use custom FFI, and move the ONNX related classes to same folder and namespace
1 parent 86dd8f6 commit 66b7e36

20 files changed

Lines changed: 113 additions & 34 deletions

composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"type": "library",
1515
"require": {
1616
"php": "^8.1",
17+
"ext-ffi": "*",
1718
"ankane/onnxruntime": "^0.2.0",
1819
"guzzlehttp/guzzle": "^7.0",
1920
"codewithkyrian/jinja-php": "^1.0",
@@ -23,7 +24,7 @@
2324
"rokka/imagine-vips": "^0.31.0",
2425
"rindow/rindow-math-matrix": "^2.0",
2526
"rindow/rindow-matlib-ffi": "^1.0",
26-
"rindow/rindow-openblas-ffi": "^1.0"
27+
"rindow/rindow-openblas-ffi": "^1.0",
2728
},
2829
"require-dev": {
2930
"pestphp/pest": "^2.31",

examples/image_detection.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
$pixels = getPixels($img);
1212

13-
$model = new OnnxRuntime\Model(__DIR__ . '/models/ssd_mobilenet_v1_10.onnx');
13+
$model = new Codewithkyrian\Transformers\Utils\Model(__DIR__ . '/models/ssd_mobilenet_v1_10.onnx');
1414
$result = $model->predict(['image_tensor:0' => [$pixels]]);
1515

1616
foreach ($result['num_detections:0'] as $idx => $n) {

src/Libraries.php

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,11 @@ enum Libraries
2222

2323
protected const LIBRARIES = [
2424
'x86_64-darwin' => [
25-
'archive' => 'libraries-osx-x86_64-{{version}}.tar.gz',
26-
'checksum' => 'f72a2bcca40e2650756c6b96c69ef031236aaab1b98673e744da4eef0c4bddbd',
25+
'archive' => [
26+
'name' => 'libraries-osx-x86_64-{{version}}',
27+
'format' => 'tar.gz',
28+
'checksum' => 'f72a2bcca40e2650756c6b96c69ef031236aaab1b98673e744da4eef0c4bddbd',
29+
],
2730
'rindowmatlib.serial' => [
2831
'folder' => 'rindow-matlib-Darwin-{{version}}',
2932
'lib' => 'librindowmatlib_serial.dylib',
@@ -62,8 +65,11 @@ enum Libraries
6265
],
6366

6467
'arm64-darwin' => [
65-
'archive' => 'libraries-osx-arm64-{{version}}.tar.gz',
66-
'checksum' => 'f72a2bcca40e2650756c6b96c69ef031236aaab1b98673e744da4eef0c4bddbd',
68+
'archive' => [
69+
'name' => 'libraries-osx-arm64-{{version}}',
70+
'format' => 'tar.gz',
71+
'checksum' => 'f72a2bcca40e2650756c6b96c69ef031236aaab1b98673e744da4eef0c4bddbd',
72+
],
6773
'rindowmatlib.serial' => [
6874
'folder' => 'rindow-matlib-Darwin-{{version}}',
6975
'lib' => 'librindowmatlib_serial.dylib',
@@ -102,8 +108,11 @@ enum Libraries
102108
],
103109

104110
'x86_64-linux' => [
105-
'archive' => 'libraries-linux-x86_64-{{version}}.tar.gz',
106-
'checksum' => 'f72a2bcca40e2650756c6b96c69ef031236aaab1b98673e744da4eef0c4bddbd',
111+
'archive' => [
112+
'name' => 'libraries-linux-x86_64-{{version}}',
113+
'format' => 'tar.gz',
114+
'checksum' => 'f72a2bcca40e2650756c6b96c69ef031236aaab1b98673e744da4eef0c4bddbd',
115+
],
107116
'rindowmatlib.serial' => [
108117
'folder' => 'rindow-matlib-Linux-{{version}}',
109118
'lib' => 'librindowmatlib_serial.so',
@@ -142,8 +151,11 @@ enum Libraries
142151
],
143152

144153
'aarch64-linux' => [
145-
'archive' => 'libraries-linux-arm64-{{version}}.tar.gz',
146-
'checksum' => 'f72a2bcca40e2650756c6b96c69ef031236aaab1b98673e744da4eef0c4bddbd',
154+
'archive' => [
155+
'name' => 'libraries-linux-arm64-{{version}}',
156+
'format' => 'tar.gz',
157+
'checksum' => 'f72a2bcca40e2650756c6b96c69ef031236aaab1b98673e744da4eef0c4bddbd',
158+
],
147159
'rindowmatlib.serial' => [
148160
'folder' => 'rindow-matlib-Linux-{{version}}',
149161
'lib' => 'librindowmatlib_serial.so',
@@ -182,8 +194,11 @@ enum Libraries
182194
],
183195

184196
'x64-windows' => [
185-
'archive' => 'libraries-windows-x64-{{version}}.zip',
186-
'checksum' => 'f72a2bcca40e2650756c6b96c69ef031236aaab1b98673e744da4eef0c4bddbd',
197+
'archive' => [
198+
'name' => 'libraries-windows-x64-{{version}}',
199+
'format' => 'zip',
200+
'checksum' => 'f72a2bcca40e2650756c6b96c69ef031236aaab1b98673e744da4eef0c4bddbd',
201+
],
187202
'rindowmatlib.serial' => [
188203
'folder' => 'rindow-matlib-Windows-{{version}}',
189204
'lib' => 'rindowmatlib_serial.dll',

src/Models/Pretrained/BartForConditionalGeneration.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
namespace Codewithkyrian\Transformers\Models\Pretrained;
77

88
use Codewithkyrian\Transformers\Models\ModelArchitecture;
9+
use Codewithkyrian\Transformers\OnnxRuntime\InferenceSession;
910
use Codewithkyrian\Transformers\Utils\AutoConfig;
1011
use Codewithkyrian\Transformers\Utils\GenerationConfig;
11-
use Codewithkyrian\Transformers\Utils\InferenceSession;
1212

1313
/**
1414
* The BART Model with a language modeling head. Can be used for summarization.

src/Models/Pretrained/CodeGenPretrainedModel.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
namespace Codewithkyrian\Transformers\Models\Pretrained;
77

88
use Codewithkyrian\Transformers\Models\ModelArchitecture;
9+
use Codewithkyrian\Transformers\OnnxRuntime\InferenceSession;
910
use Codewithkyrian\Transformers\Utils\AutoConfig;
10-
use Codewithkyrian\Transformers\Utils\InferenceSession;
1111

1212
class CodeGenPretrainedModel extends PretrainedModel
1313
{

src/Models/Pretrained/GPT2PretrainedModel.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
namespace Codewithkyrian\Transformers\Models\Pretrained;
77

88
use Codewithkyrian\Transformers\Models\ModelArchitecture;
9+
use Codewithkyrian\Transformers\OnnxRuntime\InferenceSession;
910
use Codewithkyrian\Transformers\Utils\AutoConfig;
1011
use Codewithkyrian\Transformers\Utils\GenerationConfig;
11-
use Codewithkyrian\Transformers\Utils\InferenceSession;
1212

1313
class GPT2PretrainedModel extends PretrainedModel
1414
{

src/Models/Pretrained/GPTBigCodePretrainedModel.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
namespace Codewithkyrian\Transformers\Models\Pretrained;
77

88
use Codewithkyrian\Transformers\Models\ModelArchitecture;
9+
use Codewithkyrian\Transformers\OnnxRuntime\InferenceSession;
910
use Codewithkyrian\Transformers\Utils\AutoConfig;
1011
use Codewithkyrian\Transformers\Utils\GenerationConfig;
11-
use Codewithkyrian\Transformers\Utils\InferenceSession;
1212

1313
class GPTBigCodePretrainedModel extends PretrainedModel
1414
{

src/Models/Pretrained/GPTJPretrainedModel.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
namespace Codewithkyrian\Transformers\Models\Pretrained;
77

88
use Codewithkyrian\Transformers\Models\ModelArchitecture;
9+
use Codewithkyrian\Transformers\OnnxRuntime\InferenceSession;
910
use Codewithkyrian\Transformers\Utils\AutoConfig;
10-
use Codewithkyrian\Transformers\Utils\InferenceSession;
1111

1212
class GPTJPretrainedModel extends PretrainedModel
1313
{

src/Models/Pretrained/LlamaPretrainedModel.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
namespace Codewithkyrian\Transformers\Models\Pretrained;
77

88
use Codewithkyrian\Transformers\Models\ModelArchitecture;
9+
use Codewithkyrian\Transformers\OnnxRuntime\InferenceSession;
910
use Codewithkyrian\Transformers\Utils\AutoConfig;
1011
use Codewithkyrian\Transformers\Utils\GenerationConfig;
11-
use Codewithkyrian\Transformers\Utils\InferenceSession;
1212

1313

1414
/**

src/Models/Pretrained/M2M100ForConditionalGeneration.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
namespace Codewithkyrian\Transformers\Models\Pretrained;
77

88
use Codewithkyrian\Transformers\Models\ModelArchitecture;
9+
use Codewithkyrian\Transformers\OnnxRuntime\InferenceSession;
910
use Codewithkyrian\Transformers\Utils\AutoConfig;
1011
use Codewithkyrian\Transformers\Utils\GenerationConfig;
11-
use Codewithkyrian\Transformers\Utils\InferenceSession;
1212

1313
class M2M100ForConditionalGeneration extends M2M100PretrainedModel
1414
{

0 commit comments

Comments
 (0)