onnxruntime 0.6.0 → 0.6.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|