onnxruntime 0.7.3-aarch64-linux → 0.7.5-aarch64-linux

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 96278485df2fb0786d37a7606c2d1f9eab5874170c08ca69b7fc70c3def80e32
4
- data.tar.gz: 3789be2fbb657c9ad1c513c540f4e3c90afb42780d9572aa68bf74f0c43bc4d8
3
+ metadata.gz: '0539aa58c2822eb40e4d035314a8034294703789338d71387fe7e8f0fb6e1a1c'
4
+ data.tar.gz: db289608fb4456405f39515abd8ee11fdaa2d74b419690d59741658b0c5df77c
5
5
  SHA512:
6
- metadata.gz: 8d68057d89f2c94f0435fcc9434a7d4dbbb83875bd38288dde98039a85fb9732d2022605da882a4b4f94c76d194ec289c36739f75165bd8f1c5f83664ba3a716
7
- data.tar.gz: 14d4d9fc18f7d3fb768e6ecda19cef34e1d405fd3228aa23c38e83404dff8a05f89009890d597f79d0b39706e9367645caed996ae7f5e9ef5944fbf8eefa6b90
6
+ metadata.gz: dd3628e9dab42aa6e4b4c7c3c06293f8e52dbd834434c3f020f519adecfdbacf1208e1ab47b9b1508cd61b556944c8dbb8cbb03699e913f0ce3a8e3f90c2716e
7
+ data.tar.gz: fe8378c660b873fa5838e702efaa095b7f6003cbf53b0566d83f3f2c703dfdb6cad6c6e6df8cb1307038be523dfd085c61baed7c72de60ea2e8bdccdf5a35a73
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## 0.7.5 (2023-02-11)
2
+
3
+ - Updated ONNX Runtime to 1.14.0
4
+
5
+ ## 0.7.4 (2022-10-30)
6
+
7
+ - Updated ONNX Runtime to 1.13.1
8
+
1
9
  ## 0.7.3 (2022-07-23)
2
10
 
3
11
  - Updated ONNX Runtime to 1.12.0
data/LICENSE.txt CHANGED
@@ -1,7 +1,7 @@
1
1
  MIT License
2
2
 
3
3
  Copyright (c) Microsoft Corporation
4
- Copyright (c) 2019-2022 Andrew Kane
4
+ Copyright (c) 2019-2023 Andrew Kane
5
5
 
6
6
  Permission is hereby granted, free of charge, to any person obtaining a copy
7
7
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -43,11 +43,11 @@ Get metadata
43
43
  model.metadata
44
44
  ```
45
45
 
46
- Load a model from a string
46
+ Load a model from a string or other `IO` object
47
47
 
48
48
  ```ruby
49
- byte_str = StringIO.new("...")
50
- model = OnnxRuntime::Model.new(byte_str)
49
+ io = StringIO.new("...")
50
+ model = OnnxRuntime::Model.new(io)
51
51
  ```
52
52
 
53
53
  Get specific outputs
@@ -59,7 +59,7 @@ model.predict({x: [1, 2, 3]}, output_names: ["label"])
59
59
  ## Session Options
60
60
 
61
61
  ```ruby
62
- OnnxRuntime::Model.new(path_or_bytes, {
62
+ OnnxRuntime::Model.new(path_or_io, {
63
63
  enable_cpu_mem_arena: true,
64
64
  enable_mem_pattern: true,
65
65
  enable_profiling: false,
@@ -93,7 +93,7 @@ model.predict(input_feed, {
93
93
 
94
94
  ## Inference Session API
95
95
 
96
- You can also use the Inference Session API, which follows the [Python API](https://microsoft.github.io/onnxruntime/python/api_summary.html).
96
+ You can also use the Inference Session API, which follows the [Python API](https://onnxruntime.ai/docs/api/python/api_summary.html).
97
97
 
98
98
  ```ruby
99
99
  session = OnnxRuntime::InferenceSession.new("model.onnx")
@@ -55,58 +55,12 @@ module OnnxRuntime
55
55
  end
56
56
  end
57
57
 
58
- # session
59
- @session = ::FFI::MemoryPointer.new(:pointer)
60
- from_memory =
61
- if path_or_bytes.respond_to?(:read)
62
- path_or_bytes = path_or_bytes.read
63
- true
64
- else
65
- path_or_bytes = path_or_bytes.to_str
66
- path_or_bytes.encoding == Encoding::BINARY
67
- end
68
-
69
- if from_memory
70
- check_status api[:CreateSessionFromArray].call(env.read_pointer, path_or_bytes, path_or_bytes.bytesize, session_options.read_pointer, @session)
71
- else
72
- check_status api[:CreateSession].call(env.read_pointer, ort_string(path_or_bytes), session_options.read_pointer, @session)
73
- end
58
+ @session = load_session(path_or_bytes, session_options)
74
59
  ObjectSpace.define_finalizer(self, self.class.finalize(@session))
75
60
 
76
- # input info
77
- # don't free allocator
78
- allocator = ::FFI::MemoryPointer.new(:pointer)
79
- check_status api[:GetAllocatorWithDefaultOptions].call(allocator)
80
- @allocator = allocator
81
-
82
- @inputs = []
83
- @outputs = []
84
-
85
- # input
86
- num_input_nodes = ::FFI::MemoryPointer.new(:size_t)
87
- check_status api[:SessionGetInputCount].call(read_pointer, num_input_nodes)
88
- num_input_nodes.read(:size_t).times do |i|
89
- name_ptr = ::FFI::MemoryPointer.new(:string)
90
- check_status api[:SessionGetInputName].call(read_pointer, i, @allocator.read_pointer, name_ptr)
91
- # freed in node_info
92
- typeinfo = ::FFI::MemoryPointer.new(:pointer)
93
- check_status api[:SessionGetInputTypeInfo].call(read_pointer, i, typeinfo)
94
- @inputs << {name: name_ptr.read_pointer.read_string}.merge(node_info(typeinfo))
95
- allocator_free name_ptr
96
- end
97
-
98
- # output
99
- num_output_nodes = ::FFI::MemoryPointer.new(:size_t)
100
- check_status api[:SessionGetOutputCount].call(read_pointer, num_output_nodes)
101
- num_output_nodes.read(:size_t).times do |i|
102
- name_ptr = ::FFI::MemoryPointer.new(:string)
103
- check_status api[:SessionGetOutputName].call(read_pointer, i, allocator.read_pointer, name_ptr)
104
- # freed in node_info
105
- typeinfo = ::FFI::MemoryPointer.new(:pointer)
106
- check_status api[:SessionGetOutputTypeInfo].call(read_pointer, i, typeinfo)
107
- @outputs << {name: name_ptr.read_pointer.read_string}.merge(node_info(typeinfo))
108
- allocator_free name_ptr
109
- end
61
+ @allocator = load_allocator
62
+ @inputs = load_inputs
63
+ @outputs = load_outputs
110
64
  ensure
111
65
  release :SessionOptions, session_options
112
66
  end
@@ -223,6 +177,64 @@ module OnnxRuntime
223
177
 
224
178
  private
225
179
 
180
+ def load_session(path_or_bytes, session_options)
181
+ session = ::FFI::MemoryPointer.new(:pointer)
182
+ from_memory =
183
+ if path_or_bytes.respond_to?(:read)
184
+ path_or_bytes = path_or_bytes.read
185
+ true
186
+ else
187
+ path_or_bytes = path_or_bytes.to_str
188
+ # TODO remove ability to load byte string directly in 0.8.0
189
+ path_or_bytes.encoding == Encoding::BINARY
190
+ end
191
+
192
+ if from_memory
193
+ check_status api[:CreateSessionFromArray].call(env.read_pointer, path_or_bytes, path_or_bytes.bytesize, session_options.read_pointer, session)
194
+ else
195
+ check_status api[:CreateSession].call(env.read_pointer, ort_string(path_or_bytes), session_options.read_pointer, session)
196
+ end
197
+ session
198
+ end
199
+
200
+ def load_allocator
201
+ allocator = ::FFI::MemoryPointer.new(:pointer)
202
+ check_status api[:GetAllocatorWithDefaultOptions].call(allocator)
203
+ allocator
204
+ end
205
+
206
+ def load_inputs
207
+ inputs = []
208
+ num_input_nodes = ::FFI::MemoryPointer.new(:size_t)
209
+ check_status api[:SessionGetInputCount].call(read_pointer, num_input_nodes)
210
+ num_input_nodes.read(:size_t).times do |i|
211
+ name_ptr = ::FFI::MemoryPointer.new(:string)
212
+ check_status api[:SessionGetInputName].call(read_pointer, i, @allocator.read_pointer, name_ptr)
213
+ # freed in node_info
214
+ typeinfo = ::FFI::MemoryPointer.new(:pointer)
215
+ check_status api[:SessionGetInputTypeInfo].call(read_pointer, i, typeinfo)
216
+ inputs << {name: name_ptr.read_pointer.read_string}.merge(node_info(typeinfo))
217
+ allocator_free name_ptr
218
+ end
219
+ inputs
220
+ end
221
+
222
+ def load_outputs
223
+ outputs = []
224
+ num_output_nodes = ::FFI::MemoryPointer.new(:size_t)
225
+ check_status api[:SessionGetOutputCount].call(read_pointer, num_output_nodes)
226
+ num_output_nodes.read(:size_t).times do |i|
227
+ name_ptr = ::FFI::MemoryPointer.new(:string)
228
+ check_status api[:SessionGetOutputName].call(read_pointer, i, @allocator.read_pointer, name_ptr)
229
+ # freed in node_info
230
+ typeinfo = ::FFI::MemoryPointer.new(:pointer)
231
+ check_status api[:SessionGetOutputTypeInfo].call(read_pointer, i, typeinfo)
232
+ outputs << {name: name_ptr.read_pointer.read_string}.merge(node_info(typeinfo))
233
+ allocator_free name_ptr
234
+ end
235
+ outputs
236
+ end
237
+
226
238
  def create_input_tensor(input_feed, refs)
227
239
  allocator_info = ::FFI::MemoryPointer.new(:pointer)
228
240
  check_status api[:CreateCpuMemoryInfo].call(1, 0, allocator_info)
@@ -325,7 +337,7 @@ module OnnxRuntime
325
337
  check_status api[:GetTensorMutableData].call(out_ptr, tensor_data)
326
338
 
327
339
  out_size = ::FFI::MemoryPointer.new(:size_t)
328
- output_tensor_size = api[:GetTensorShapeElementCount].call(typeinfo.read_pointer, out_size)
340
+ check_status api[:GetTensorShapeElementCount].call(typeinfo.read_pointer, out_size)
329
341
  output_tensor_size = out_size.read(:size_t)
330
342
 
331
343
  release :TensorTypeAndShapeInfo, typeinfo
@@ -1,3 +1,3 @@
1
1
  module OnnxRuntime
2
- VERSION = "0.7.3"
2
+ VERSION = "0.7.5"
3
3
  end