* Create generic RecurrentSequenceDirection enum. * Helper class RecurrentSequenceOp. * Add ONNX GRU & RNN operators. * Use OutputVector. * Update doc. * Add UTs for GRU and skip them on IE_CPU * Add UT for bidirectional mode and fix it. * Normalize activation function name case. * Add unit-tests for RNN operator. * UT for GRU with linear_before_reset set to true. * Fix ONNX GRU for linear_before_reset case. * Remove unnecessary symbol export macro. * Fix CentOS error. * Update UTs. - Update few tests accuracy tolerance - Update rnn_fwd_activations with new reference values and model. * Review comment: add check for static shape * Add UT for RNN with constant inputs W, R. * Skip UT with const W,R on IE_CPU
158 lines
2.6 KiB
Plaintext
158 lines
2.6 KiB
Plaintext
ir_version: 3
|
|
producer_name: "nGraph ONNX Importer"
|
|
graph {
|
|
node {
|
|
input: "X"
|
|
input: "W"
|
|
input: "R"
|
|
input: "B"
|
|
input: ""
|
|
input: "initial_h"
|
|
output: "Y"
|
|
output: "Y_h"
|
|
op_type: "RNN"
|
|
attribute {
|
|
name: "hidden_size"
|
|
i: 5
|
|
type: INT
|
|
}
|
|
}
|
|
name: "test_rnn_fwd_bias_initial_h"
|
|
input {
|
|
name: "X"
|
|
type {
|
|
tensor_type {
|
|
elem_type: 1
|
|
shape {
|
|
dim {
|
|
dim_value: 4 # seq_length
|
|
}
|
|
dim {
|
|
dim_value: 3 # batch size
|
|
}
|
|
dim {
|
|
dim_value: 2 # input size
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
input {
|
|
name: "W"
|
|
type {
|
|
tensor_type {
|
|
elem_type: 1
|
|
shape {
|
|
dim {
|
|
dim_value: 1 # num_directions
|
|
}
|
|
dim {
|
|
dim_value: 5 # gates_count*hidden_size
|
|
}
|
|
dim {
|
|
dim_value: 2 # input_size
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
input {
|
|
name: "R"
|
|
type {
|
|
tensor_type {
|
|
elem_type: 1
|
|
shape {
|
|
dim {
|
|
dim_value: 1 # num_directions
|
|
}
|
|
dim {
|
|
dim_value: 5 # gates_count*hidden_size
|
|
}
|
|
dim {
|
|
dim_value: 5 # hidden_size
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
input {
|
|
name: "B"
|
|
type {
|
|
tensor_type {
|
|
elem_type: 1
|
|
shape {
|
|
dim {
|
|
dim_value: 1 # num_directions
|
|
}
|
|
dim {
|
|
dim_value: 10 # 2 * gates_count*hidden_size
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
input {
|
|
name: "initial_h"
|
|
type {
|
|
tensor_type {
|
|
elem_type: 1
|
|
shape {
|
|
dim {
|
|
dim_value: 1 # num_directions
|
|
}
|
|
dim {
|
|
dim_value: 3 # batch size
|
|
}
|
|
dim {
|
|
dim_value: 5 # hidden size
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
output {
|
|
name: "Y"
|
|
type {
|
|
tensor_type {
|
|
elem_type: 1
|
|
shape {
|
|
dim {
|
|
dim_value: 4 # seq_length
|
|
}
|
|
dim {
|
|
dim_value: 1 # num_directions
|
|
}
|
|
dim {
|
|
dim_value: 3 # batch_size
|
|
}
|
|
dim {
|
|
dim_value: 5 # hidden_size
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
output {
|
|
name: "Y_h"
|
|
type {
|
|
tensor_type {
|
|
elem_type: 1
|
|
shape {
|
|
dim {
|
|
dim_value: 1 # num_directions
|
|
}
|
|
dim {
|
|
dim_value: 3 # batch_size
|
|
}
|
|
dim {
|
|
dim_value: 5 # hidden_size
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
opset_import {
|
|
version: 9
|
|
}
|