onnxruntime 0.3.2 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/onnxruntime/inference_session.rb +36 -4
- data/lib/onnxruntime/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b7d22851572b35128d1e2bbcc041b4989851e02354cace5389afc25855674b11
|
4
|
+
data.tar.gz: f1eee285e5dbff1fbf6de4e350560e3e386e1f4d26d53810f154cd16117e38e6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f89ba13181bfcc8cdf35356efae175d0e2c7a0787a13af8d46788645046f057bce466e28566c0f2982f52893dbb7cc1553a741b1ca4923066e90c0a5fb230edf
|
7
|
+
data.tar.gz: 3843b9c1e5a9432d3b72ebb33498aaef0fb6edf8942a9f0b6794bed36fb95df67290e6c4385e19927e5404510d89ad8965b15de0a96246b7f1770c4fb01216f6
|
data/CHANGELOG.md
CHANGED
@@ -50,6 +50,7 @@ module OnnxRuntime
|
|
50
50
|
else
|
51
51
|
check_status api[:CreateSession].call(env.read_pointer, path_or_bytes, session_options.read_pointer, @session)
|
52
52
|
end
|
53
|
+
ObjectSpace.define_finalizer(self, self.class.finalize(@session))
|
53
54
|
|
54
55
|
# input info
|
55
56
|
allocator = ::FFI::MemoryPointer.new(:pointer)
|
@@ -80,6 +81,8 @@ module OnnxRuntime
|
|
80
81
|
check_status api[:SessionGetOutputTypeInfo].call(read_pointer, i, typeinfo)
|
81
82
|
@outputs << {name: name_ptr.read_pointer.read_string}.merge(node_info(typeinfo))
|
82
83
|
end
|
84
|
+
ensure
|
85
|
+
# release :SessionOptions, session_options
|
83
86
|
end
|
84
87
|
|
85
88
|
# TODO support logid
|
@@ -105,6 +108,13 @@ module OnnxRuntime
|
|
105
108
|
output_names.size.times.map do |i|
|
106
109
|
create_from_onnx_value(output_tensor[i].read_pointer)
|
107
110
|
end
|
111
|
+
ensure
|
112
|
+
release :RunOptions, run_options
|
113
|
+
if input_tensor
|
114
|
+
input_feed.size.times do |i|
|
115
|
+
release :Value, input_tensor[i]
|
116
|
+
end
|
117
|
+
end
|
108
118
|
end
|
109
119
|
|
110
120
|
def modelmeta
|
@@ -133,7 +143,6 @@ module OnnxRuntime
|
|
133
143
|
check_status api[:ModelMetadataGetGraphName].call(metadata.read_pointer, @allocator.read_pointer, graph_name)
|
134
144
|
check_status api[:ModelMetadataGetProducerName].call(metadata.read_pointer, @allocator.read_pointer, producer_name)
|
135
145
|
check_status api[:ModelMetadataGetVersion].call(metadata.read_pointer, version)
|
136
|
-
api[:ReleaseModelMetadata].call(metadata.read_pointer)
|
137
146
|
|
138
147
|
{
|
139
148
|
custom_metadata_map: custom_metadata_map,
|
@@ -143,6 +152,8 @@ module OnnxRuntime
|
|
143
152
|
producer_name: producer_name.read_pointer.read_string,
|
144
153
|
version: version.read(:int64_t)
|
145
154
|
}
|
155
|
+
ensure
|
156
|
+
release :ModelMetadata, metadata
|
146
157
|
end
|
147
158
|
|
148
159
|
def end_profiling
|
@@ -232,6 +243,8 @@ module OnnxRuntime
|
|
232
243
|
output_tensor_size = api[:GetTensorShapeElementCount].call(typeinfo.read_pointer, out_size)
|
233
244
|
output_tensor_size = read_size_t(out_size)
|
234
245
|
|
246
|
+
release :TensorTypeAndShapeInfo, typeinfo
|
247
|
+
|
235
248
|
# TODO support more types
|
236
249
|
type = FFI::TensorElementDataType[type]
|
237
250
|
arr =
|
@@ -264,6 +277,7 @@ module OnnxRuntime
|
|
264
277
|
check_status api[:GetValue].call(out_ptr, 1, @allocator.read_pointer, map_values)
|
265
278
|
check_status api[:GetTensorTypeAndShape].call(map_keys.read_pointer, type_shape)
|
266
279
|
check_status api[:GetTensorElementType].call(type_shape.read_pointer, elem_type)
|
280
|
+
release :TensorTypeAndShapeInfo, type_shape
|
267
281
|
|
268
282
|
# TODO support more types
|
269
283
|
elem_type = FFI::TensorElementDataType[elem_type.read_int]
|
@@ -304,6 +318,7 @@ module OnnxRuntime
|
|
304
318
|
case type
|
305
319
|
when :tensor
|
306
320
|
tensor_info = ::FFI::MemoryPointer.new(:pointer)
|
321
|
+
# don't free tensor_info
|
307
322
|
check_status api[:CastTypeInfoToTensorInfo].call(typeinfo.read_pointer, tensor_info)
|
308
323
|
|
309
324
|
type, shape = tensor_type_and_shape(tensor_info)
|
@@ -344,7 +359,7 @@ module OnnxRuntime
|
|
344
359
|
unsupported_type("ONNX", type)
|
345
360
|
end
|
346
361
|
ensure
|
347
|
-
|
362
|
+
release :TypeInfo, typeinfo
|
348
363
|
end
|
349
364
|
|
350
365
|
def tensor_type_and_shape(tensor_info)
|
@@ -375,7 +390,24 @@ module OnnxRuntime
|
|
375
390
|
end
|
376
391
|
|
377
392
|
def api
|
378
|
-
|
393
|
+
self.class.api
|
394
|
+
end
|
395
|
+
|
396
|
+
def release(*args)
|
397
|
+
self.class.release(*args)
|
398
|
+
end
|
399
|
+
|
400
|
+
def self.api
|
401
|
+
@api ||= FFI.OrtGetApiBase[:GetApi].call(3)
|
402
|
+
end
|
403
|
+
|
404
|
+
def self.release(type, pointer)
|
405
|
+
api[:"Release#{type}"].call(pointer.read_pointer) if pointer && !pointer.null?
|
406
|
+
end
|
407
|
+
|
408
|
+
def self.finalize(session)
|
409
|
+
# must use proc instead of stabby lambda
|
410
|
+
proc { release :Session, session }
|
379
411
|
end
|
380
412
|
|
381
413
|
def env
|
@@ -384,7 +416,7 @@ module OnnxRuntime
|
|
384
416
|
@@env ||= begin
|
385
417
|
env = ::FFI::MemoryPointer.new(:pointer)
|
386
418
|
check_status api[:CreateEnv].call(3, "Default", env)
|
387
|
-
at_exit {
|
419
|
+
at_exit { release :Env, env }
|
388
420
|
# disable telemetry
|
389
421
|
# https://github.com/microsoft/onnxruntime/blob/master/docs/Privacy.md
|
390
422
|
check_status api[:DisableTelemetryEvents].call(env)
|
data/lib/onnxruntime/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: onnxruntime
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kane
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-06-
|
11
|
+
date: 2020-06-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|