onnxruntime 0.6.0 → 0.6.1
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 +30 -17
- 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: cdaa22ac1c012d33382f55edd3239dfa234d46b8f62f78cfce1c1f6907361214
|
4
|
+
data.tar.gz: 966f47e7b851c67fb2a5ca32ee2145dbd113753356b1e439ab86e79bda5bcbe5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c5ae2163e7266b2812ffb370278bb8d50eba9ec629011b7419a816e87acb1109b35918e81ba1b601f492356b210731533d2af0ddc08b0fe3edda639e2f0da36a
|
7
|
+
data.tar.gz: 7637d96ebded51e0cc1c782344832f129c0691e0255e97d207a026ca50e360e1358b0c5d5cffc52f6e3e9a06c2f67dfa61fdbcfe8cd92d46cbaf475c8cbbfca0
|
data/CHANGELOG.md
CHANGED
@@ -81,13 +81,16 @@ module OnnxRuntime
|
|
81
81
|
|
82
82
|
# TODO support logid
|
83
83
|
def run(output_names, input_feed, log_severity_level: nil, log_verbosity_level: nil, logid: nil, terminate: nil, output_type: :ruby)
|
84
|
-
|
84
|
+
# pointer references
|
85
|
+
refs = []
|
86
|
+
|
87
|
+
input_tensor = create_input_tensor(input_feed, refs)
|
85
88
|
|
86
89
|
output_names ||= @outputs.map { |v| v[:name] }
|
87
90
|
|
88
91
|
output_tensor = ::FFI::MemoryPointer.new(:pointer, outputs.size)
|
89
|
-
input_node_names = create_node_names(input_feed.keys.map(&:to_s))
|
90
|
-
output_node_names = create_node_names(output_names.map(&:to_s))
|
92
|
+
input_node_names = create_node_names(input_feed.keys.map(&:to_s), refs)
|
93
|
+
output_node_names = create_node_names(output_names.map(&:to_s), refs)
|
91
94
|
|
92
95
|
# run options
|
93
96
|
run_options = ::FFI::MemoryPointer.new(:pointer)
|
@@ -174,7 +177,7 @@ module OnnxRuntime
|
|
174
177
|
|
175
178
|
private
|
176
179
|
|
177
|
-
def create_input_tensor(input_feed)
|
180
|
+
def create_input_tensor(input_feed, refs)
|
178
181
|
allocator_info = ::FFI::MemoryPointer.new(:pointer)
|
179
182
|
check_status api[:CreateCpuMemoryInfo].call(1, 0, allocator_info)
|
180
183
|
input_tensor = ::FFI::MemoryPointer.new(:pointer, input_feed.size)
|
@@ -201,19 +204,21 @@ module OnnxRuntime
|
|
201
204
|
input_node_dims.write_array_of_int64(shape)
|
202
205
|
|
203
206
|
if inp[:type] == "tensor(string)"
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
207
|
+
str_ptrs =
|
208
|
+
if numo_array?(input)
|
209
|
+
input.size.times.map { |i| ::FFI::MemoryPointer.from_string(input[i]) }
|
210
|
+
else
|
211
|
+
input.flatten.map { |v| ::FFI::MemoryPointer.from_string(v) }
|
212
|
+
end
|
213
|
+
|
214
|
+
input_tensor_values = ::FFI::MemoryPointer.new(:pointer, str_ptrs.size)
|
215
|
+
input_tensor_values.write_array_of_pointer(str_ptrs)
|
216
|
+
|
214
217
|
type_enum = FFI::TensorElementDataType[:string]
|
215
218
|
check_status api[:CreateTensorAsOrtValue].call(@allocator.read_pointer, input_node_dims, shape.size, type_enum, input_tensor[idx])
|
216
|
-
check_status api[:FillStringTensor].call(input_tensor[idx].read_pointer, input_tensor_values,
|
219
|
+
check_status api[:FillStringTensor].call(input_tensor[idx].read_pointer, input_tensor_values, str_ptrs.size)
|
220
|
+
|
221
|
+
refs << str_ptrs
|
217
222
|
else
|
218
223
|
tensor_type = tensor_types[inp[:type]]
|
219
224
|
|
@@ -236,15 +241,23 @@ module OnnxRuntime
|
|
236
241
|
end
|
237
242
|
|
238
243
|
check_status api[:CreateTensorWithDataAsOrtValue].call(allocator_info.read_pointer, input_tensor_values, input_tensor_values.size, input_node_dims, shape.size, type_enum, input_tensor[idx])
|
244
|
+
|
245
|
+
refs << input_node_dims
|
246
|
+
refs << input_tensor_values
|
239
247
|
end
|
240
248
|
end
|
241
249
|
|
250
|
+
refs << allocator_info
|
251
|
+
|
242
252
|
input_tensor
|
243
253
|
end
|
244
254
|
|
245
|
-
def create_node_names(names)
|
255
|
+
def create_node_names(names, refs)
|
256
|
+
str_ptrs = names.map { |v| ::FFI::MemoryPointer.from_string(v) }
|
257
|
+
refs << str_ptrs
|
258
|
+
|
246
259
|
ptr = ::FFI::MemoryPointer.new(:pointer, names.size)
|
247
|
-
ptr.write_array_of_pointer(
|
260
|
+
ptr.write_array_of_pointer(str_ptrs)
|
248
261
|
ptr
|
249
262
|
end
|
250
263
|
|
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.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kane
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-05-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|