This commit is contained in:
Vladislav Golubev 2021-12-20 14:58:04 +03:00 committed by GitHub
parent ff330ea41e
commit 191b15a228
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -19,14 +19,13 @@
using namespace testing;
using namespace MKLDNNPlugin;
using namespace ngraph;
TEST(TransformationTests, OptimizeLSTMSequenceTransposesTest) {
std::shared_ptr<ngraph::Function> f(nullptr), f_ref(nullptr);
{
auto X = std::make_shared<opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 2, 1, 16 });
auto Y = std::make_shared<opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 1, 1, 128 });
auto Z = std::make_shared<opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 1, 1, 128 });
auto X = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 2, 1, 16 });
auto Y = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 1, 1, 128 });
auto Z = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 1, 1, 128 });
auto w_val = std::vector<float>(512 * 16, 0);
auto r_val = std::vector<float>(512 * 128, 0);
@ -39,14 +38,15 @@ TEST(TransformationTests, OptimizeLSTMSequenceTransposesTest) {
auto transpose_before = std::make_shared<ngraph::opset1::Transpose>(X, transpose_before_const);
auto seq_lengths = ngraph::opset1::Constant::create(ngraph::element::i32, ngraph::Shape{ 1 }, { 2 });
auto lstm_seq = std::make_shared<opset5::LSTMSequence>(transpose_before, Y, Z, seq_lengths, W, R, B, 128, op::RecurrentSequenceDirection::FORWARD);
auto lstm_seq = std::make_shared<ngraph::opset5::LSTMSequence>(transpose_before, Y, Z, seq_lengths, W, R, B, 128,
ngraph::op::RecurrentSequenceDirection::FORWARD);
auto transpose_after_const = ngraph::opset1::Constant::create(ngraph::element::i32, ngraph::Shape{ 4 }, { 2, 1, 0, 3 });
auto transpose_after = std::make_shared<ngraph::opset1::Transpose>(lstm_seq->output(0), transpose_after_const);
const auto Y_out = std::make_shared<opset1::Result>(transpose_after);
const auto Ho = std::make_shared<opset1::Result>(lstm_seq->output(1));
const auto Co = std::make_shared<opset1::Result>(lstm_seq->output(2));
const auto Y_out = std::make_shared<ngraph::opset1::Result>(transpose_after);
const auto Ho = std::make_shared<ngraph::opset1::Result>(lstm_seq->output(1));
const auto Co = std::make_shared<ngraph::opset1::Result>(lstm_seq->output(2));
Y_out->set_friendly_name("Y_out");
Ho->set_friendly_name("Ho");
Co->set_friendly_name("Co");
@ -60,9 +60,9 @@ TEST(TransformationTests, OptimizeLSTMSequenceTransposesTest) {
}
{
auto X = std::make_shared<opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 2, 1, 16 });
auto Y = std::make_shared<opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 1, 1, 128 });
auto Z = std::make_shared<opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 1, 1, 128 });
auto X = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 2, 1, 16 });
auto Y = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 1, 1, 128 });
auto Z = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 1, 1, 128 });
auto w_val = std::vector<float>(512 * 16, 0);
auto r_val = std::vector<float>(512 * 128, 0);
@ -75,14 +75,15 @@ TEST(TransformationTests, OptimizeLSTMSequenceTransposesTest) {
auto reshape_before = std::make_shared<ngraph::opset1::Reshape>(X, reshape_before_const, false);
auto seq_lengths = ngraph::opset1::Constant::create(ngraph::element::i32, ngraph::Shape{ 1 }, { 2 });
auto lstm_seq = std::make_shared<opset5::LSTMSequence>(reshape_before, Y, Z, seq_lengths, W, R, B, 128, op::RecurrentSequenceDirection::FORWARD);
auto lstm_seq = std::make_shared<ngraph::opset5::LSTMSequence>(reshape_before, Y, Z, seq_lengths, W, R, B, 128,
ngraph::op::RecurrentSequenceDirection::FORWARD);
auto reshape_after_const = ngraph::opset1::Constant::create(ngraph::element::i64, ngraph::Shape{ 4 }, { 2, 1, 1, 128 });
auto reshape_after = std::make_shared<ngraph::opset1::Reshape>(lstm_seq->output(0), reshape_after_const, false);
const auto Y_out = std::make_shared<opset1::Result>(reshape_after);
const auto Ho = std::make_shared<opset1::Result>(lstm_seq->output(1));
const auto Co = std::make_shared<opset1::Result>(lstm_seq->output(2));
const auto Y_out = std::make_shared<ngraph::opset1::Result>(reshape_after);
const auto Ho = std::make_shared<ngraph::opset1::Result>(lstm_seq->output(1));
const auto Co = std::make_shared<ngraph::opset1::Result>(lstm_seq->output(2));
Y_out->set_friendly_name("Y_out");
Ho->set_friendly_name("Ho");
Co->set_friendly_name("Co");
@ -97,9 +98,9 @@ TEST(TransformationTests, OptimizeLSTMSequenceTransposesTest) {
TEST(TransformationTests, OptimizeLSTMSequenceTransposesDynamicTest) {
std::shared_ptr<ngraph::Function> f(nullptr), f_ref(nullptr);
{
auto X = std::make_shared<opset1::Parameter>(ngraph::element::f32, PartialShape{ 2, -1, -1 });
auto Y = std::make_shared<opset1::Parameter>(ngraph::element::f32, PartialShape{ 1, 1, 128 });
auto Z = std::make_shared<opset1::Parameter>(ngraph::element::f32, PartialShape{ 1, 1, 128 });
auto X = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::PartialShape{ 2, -1, -1 });
auto Y = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::PartialShape{ 1, 1, 128 });
auto Z = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::PartialShape{ 1, 1, 128 });
auto w_val = std::vector<float>(512 * 16, 0);
auto r_val = std::vector<float>(512 * 128, 0);
@ -112,14 +113,15 @@ TEST(TransformationTests, OptimizeLSTMSequenceTransposesDynamicTest) {
auto transpose_before = std::make_shared<ngraph::opset1::Transpose>(X, transpose_before_const);
auto seq_lengths = ngraph::opset1::Constant::create(ngraph::element::i32, ngraph::Shape{ 1 }, { 2 });
auto lstm_seq = std::make_shared<opset5::LSTMSequence>(transpose_before, Y, Z, seq_lengths, W, R, B, 128, op::RecurrentSequenceDirection::FORWARD);
auto lstm_seq = std::make_shared<ngraph::opset5::LSTMSequence>(transpose_before, Y, Z, seq_lengths, W, R, B, 128,
ngraph::op::RecurrentSequenceDirection::FORWARD);
auto transpose_after_const = ngraph::opset1::Constant::create(ngraph::element::i32, ngraph::Shape{ 4 }, { 2, 1, 0, 3 });
auto transpose_after = std::make_shared<ngraph::opset1::Transpose>(lstm_seq->output(0), transpose_after_const);
const auto Y_out = std::make_shared<opset1::Result>(transpose_after);
const auto Ho = std::make_shared<opset1::Result>(lstm_seq->output(1));
const auto Co = std::make_shared<opset1::Result>(lstm_seq->output(2));
const auto Y_out = std::make_shared<ngraph::opset1::Result>(transpose_after);
const auto Ho = std::make_shared<ngraph::opset1::Result>(lstm_seq->output(1));
const auto Co = std::make_shared<ngraph::opset1::Result>(lstm_seq->output(2));
Y_out->set_friendly_name("Y_out");
Ho->set_friendly_name("Ho");
Co->set_friendly_name("Co");
@ -133,9 +135,9 @@ TEST(TransformationTests, OptimizeLSTMSequenceTransposesDynamicTest) {
}
{
auto X = std::make_shared<opset1::Parameter>(ngraph::element::f32, PartialShape{ 2, -1, -1 });
auto Y = std::make_shared<opset1::Parameter>(ngraph::element::f32, PartialShape{ 1, 1, 128 });
auto Z = std::make_shared<opset1::Parameter>(ngraph::element::f32, PartialShape{ 1, 1, 128 });
auto X = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::PartialShape{ 2, -1, -1 });
auto Y = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::PartialShape{ 1, 1, 128 });
auto Z = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::PartialShape{ 1, 1, 128 });
auto w_val = std::vector<float>(512 * 16, 0);
auto r_val = std::vector<float>(512 * 128, 0);
@ -151,14 +153,15 @@ TEST(TransformationTests, OptimizeLSTMSequenceTransposesDynamicTest) {
auto reshape_before = std::make_shared<ngraph::opset1::Reshape>(X, reshape_before_pattern, false);
auto seq_lengths = ngraph::opset1::Constant::create(ngraph::element::i32, ngraph::Shape{ 1 }, { 2 });
auto lstm_seq = std::make_shared<opset5::LSTMSequence>(reshape_before, Y, Z, seq_lengths, W, R, B, 128, op::RecurrentSequenceDirection::FORWARD);
auto lstm_seq = std::make_shared<ngraph::opset5::LSTMSequence>(reshape_before, Y, Z, seq_lengths, W, R, B, 128,
ngraph::op::RecurrentSequenceDirection::FORWARD);
auto reshape_after_const = ngraph::opset1::Constant::create(ngraph::element::i64, ngraph::Shape{ 4 }, { 2, 1, 1, 128 });
auto reshape_after = std::make_shared<ngraph::opset1::Reshape>(lstm_seq->output(0), reshape_after_const, false);
const auto Y_out = std::make_shared<opset1::Result>(reshape_after);
const auto Ho = std::make_shared<opset1::Result>(lstm_seq->output(1));
const auto Co = std::make_shared<opset1::Result>(lstm_seq->output(2));
const auto Y_out = std::make_shared<ngraph::opset1::Result>(reshape_after);
const auto Ho = std::make_shared<ngraph::opset1::Result>(lstm_seq->output(1));
const auto Co = std::make_shared<ngraph::opset1::Result>(lstm_seq->output(2));
Y_out->set_friendly_name("Y_out");
Ho->set_friendly_name("Ho");
Co->set_friendly_name("Co");
@ -173,8 +176,8 @@ TEST(TransformationTests, OptimizeLSTMSequenceTransposesDynamicTest) {
TEST(TransformationTests, OptimizeRNNSequenceTransposesTest) {
std::shared_ptr<ngraph::Function> f(nullptr), f_ref(nullptr);
{
auto X = std::make_shared<opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 2, 1, 16 });
auto Y = std::make_shared<opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 1, 1, 128 });
auto X = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 2, 1, 16 });
auto Y = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 1, 1, 128 });
auto w_val = std::vector<float>(128 * 16, 0);
auto r_val = std::vector<float>(128 * 128, 0);
@ -187,13 +190,14 @@ TEST(TransformationTests, OptimizeRNNSequenceTransposesTest) {
auto transpose_before = std::make_shared<ngraph::opset1::Transpose>(X, transpose_before_const);
auto seq_lengths = ngraph::opset1::Constant::create(ngraph::element::i32, ngraph::Shape{ 1 }, { 2 });
auto lstm_seq = std::make_shared<opset5::RNNSequence>(transpose_before, Y, seq_lengths, W, R, B, 128, op::RecurrentSequenceDirection::FORWARD);
auto lstm_seq = std::make_shared<ngraph::opset5::RNNSequence>(transpose_before, Y, seq_lengths, W, R, B, 128,
ngraph::op::RecurrentSequenceDirection::FORWARD);
auto transpose_after_const = ngraph::opset1::Constant::create(ngraph::element::i32, ngraph::Shape{ 4 }, { 2, 1, 0, 3 });
auto transpose_after = std::make_shared<ngraph::opset1::Transpose>(lstm_seq->output(0), transpose_after_const);
const auto Y_out = std::make_shared<opset1::Result>(transpose_after);
const auto Ho = std::make_shared<opset1::Result>(lstm_seq->output(1));
const auto Y_out = std::make_shared<ngraph::opset1::Result>(transpose_after);
const auto Ho = std::make_shared<ngraph::opset1::Result>(lstm_seq->output(1));
Y_out->set_friendly_name("Y_out");
Ho->set_friendly_name("Ho");
@ -206,8 +210,8 @@ TEST(TransformationTests, OptimizeRNNSequenceTransposesTest) {
}
{
auto X = std::make_shared<opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 2, 1, 16 });
auto Y = std::make_shared<opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 1, 1, 128 });
auto X = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 2, 1, 16 });
auto Y = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 1, 1, 128 });
auto w_val = std::vector<float>(128 * 16, 0);
auto r_val = std::vector<float>(128 * 128, 0);
@ -220,13 +224,14 @@ TEST(TransformationTests, OptimizeRNNSequenceTransposesTest) {
auto reshape_before = std::make_shared<ngraph::opset1::Reshape>(X, reshape_before_const, false);
auto seq_lengths = ngraph::opset1::Constant::create(ngraph::element::i32, ngraph::Shape{ 1 }, { 2 });
auto lstm_seq = std::make_shared<opset5::RNNSequence>(reshape_before, Y, seq_lengths, W, R, B, 128, op::RecurrentSequenceDirection::FORWARD);
auto lstm_seq = std::make_shared<ngraph::opset5::RNNSequence>(reshape_before, Y, seq_lengths, W, R, B, 128,
ngraph::op::RecurrentSequenceDirection::FORWARD);
auto reshape_after_const = ngraph::opset1::Constant::create(ngraph::element::i64, ngraph::Shape{ 4 }, { 2, 1, 1, 128 });
auto reshape_after = std::make_shared<ngraph::opset1::Reshape>(lstm_seq->output(0), reshape_after_const, false);
const auto Y_out = std::make_shared<opset1::Result>(reshape_after);
const auto Ho = std::make_shared<opset1::Result>(lstm_seq->output(1));
const auto Y_out = std::make_shared<ngraph::opset1::Result>(reshape_after);
const auto Ho = std::make_shared<ngraph::opset1::Result>(lstm_seq->output(1));
Y_out->set_friendly_name("Y_out");
Ho->set_friendly_name("Ho");
@ -240,8 +245,8 @@ TEST(TransformationTests, OptimizeRNNSequenceTransposesTest) {
TEST(TransformationTests, OptimizeRNNSequenceTransposesDynamicTest) {
std::shared_ptr<ngraph::Function> f(nullptr), f_ref(nullptr);
{
auto X = std::make_shared<opset1::Parameter>(ngraph::element::f32, PartialShape{ 2, -1, -1 });
auto Y = std::make_shared<opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 1, 1, 128 });
auto X = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::PartialShape{ 2, -1, -1 });
auto Y = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 1, 1, 128 });
auto w_val = std::vector<float>(128 * 16, 0);
auto r_val = std::vector<float>(128 * 128, 0);
@ -254,13 +259,14 @@ TEST(TransformationTests, OptimizeRNNSequenceTransposesDynamicTest) {
auto transpose_before = std::make_shared<ngraph::opset1::Transpose>(X, transpose_before_const);
auto seq_lengths = ngraph::opset1::Constant::create(ngraph::element::i32, ngraph::Shape{ 1 }, { 2 });
auto lstm_seq = std::make_shared<opset5::RNNSequence>(transpose_before, Y, seq_lengths, W, R, B, 128, op::RecurrentSequenceDirection::FORWARD);
auto lstm_seq = std::make_shared<ngraph::opset5::RNNSequence>(transpose_before, Y, seq_lengths, W, R, B, 128,
ngraph::op::RecurrentSequenceDirection::FORWARD);
auto transpose_after_const = ngraph::opset1::Constant::create(ngraph::element::i32, ngraph::Shape{ 4 }, { 2, 1, 0, 3 });
auto transpose_after = std::make_shared<ngraph::opset1::Transpose>(lstm_seq->output(0), transpose_after_const);
const auto Y_out = std::make_shared<opset1::Result>(transpose_after);
const auto Ho = std::make_shared<opset1::Result>(lstm_seq->output(1));
const auto Y_out = std::make_shared<ngraph::opset1::Result>(transpose_after);
const auto Ho = std::make_shared<ngraph::opset1::Result>(lstm_seq->output(1));
Y_out->set_friendly_name("Y_out");
Ho->set_friendly_name("Ho");
@ -273,8 +279,8 @@ TEST(TransformationTests, OptimizeRNNSequenceTransposesDynamicTest) {
}
{
auto X = std::make_shared<opset1::Parameter>(ngraph::element::f32, PartialShape{ 2, -1, -1 });
auto Y = std::make_shared<opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 1, 1, 128 });
auto X = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::PartialShape{ 2, -1, -1 });
auto Y = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 1, 1, 128 });
auto w_val = std::vector<float>(128 * 16, 0);
auto r_val = std::vector<float>(128 * 128, 0);
@ -290,13 +296,14 @@ TEST(TransformationTests, OptimizeRNNSequenceTransposesDynamicTest) {
auto reshape_before = std::make_shared<ngraph::opset1::Reshape>(X, reshape_before_pattern, false);
auto seq_lengths = ngraph::opset1::Constant::create(ngraph::element::i32, ngraph::Shape{ 1 }, { 2 });
auto lstm_seq = std::make_shared<opset5::RNNSequence>(reshape_before, Y, seq_lengths, W, R, B, 128, op::RecurrentSequenceDirection::FORWARD);
auto lstm_seq = std::make_shared<ngraph::opset5::RNNSequence>(reshape_before, Y, seq_lengths, W, R, B, 128,
ngraph::op::RecurrentSequenceDirection::FORWARD);
auto reshape_after_const = ngraph::opset1::Constant::create(ngraph::element::i64, ngraph::Shape{ 4 }, { 2, 1, 1, 128 });
auto reshape_after = std::make_shared<ngraph::opset1::Reshape>(lstm_seq->output(0), reshape_after_const, false);
const auto Y_out = std::make_shared<opset1::Result>(reshape_after);
const auto Ho = std::make_shared<opset1::Result>(lstm_seq->output(1));
const auto Y_out = std::make_shared<ngraph::opset1::Result>(reshape_after);
const auto Ho = std::make_shared<ngraph::opset1::Result>(lstm_seq->output(1));
Y_out->set_friendly_name("Y_out");
Ho->set_friendly_name("Ho");
@ -310,8 +317,8 @@ TEST(TransformationTests, OptimizeRNNSequenceTransposesDynamicTest) {
TEST(TransformationTests, OptimizeGRUSequenceTransposesTest) {
std::shared_ptr<ngraph::Function> f(nullptr), f_ref(nullptr);
{
auto X = std::make_shared<opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 2, 1, 16 });
auto Y = std::make_shared<opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 1, 1, 128 });
auto X = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 2, 1, 16 });
auto Y = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 1, 1, 128 });
auto w_val = std::vector<float>(384 * 16, 0);
auto r_val = std::vector<float>(384 * 128, 0);
@ -324,13 +331,14 @@ TEST(TransformationTests, OptimizeGRUSequenceTransposesTest) {
auto transpose_before = std::make_shared<ngraph::opset1::Transpose>(X, transpose_before_const);
auto seq_lengths = ngraph::opset1::Constant::create(ngraph::element::i32, ngraph::Shape{ 1 }, { 2 });
auto lstm_seq = std::make_shared<opset5::GRUSequence>(transpose_before, Y, seq_lengths, W, R, B, 128, op::RecurrentSequenceDirection::FORWARD);
auto lstm_seq = std::make_shared<ngraph::opset5::GRUSequence>(transpose_before, Y, seq_lengths, W, R, B, 128,
ngraph::op::RecurrentSequenceDirection::FORWARD);
auto transpose_after_const = ngraph::opset1::Constant::create(ngraph::element::i32, ngraph::Shape{ 4 }, { 2, 1, 0, 3 });
auto transpose_after = std::make_shared<ngraph::opset1::Transpose>(lstm_seq->output(0), transpose_after_const);
const auto Y_out = std::make_shared<opset1::Result>(transpose_after);
const auto Ho = std::make_shared<opset1::Result>(lstm_seq->output(1));
const auto Y_out = std::make_shared<ngraph::opset1::Result>(transpose_after);
const auto Ho = std::make_shared<ngraph::opset1::Result>(lstm_seq->output(1));
Y_out->set_friendly_name("Y_out");
Ho->set_friendly_name("Ho");
@ -343,8 +351,8 @@ TEST(TransformationTests, OptimizeGRUSequenceTransposesTest) {
}
{
auto X = std::make_shared<opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 2, 1, 16 });
auto Y = std::make_shared<opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 1, 1, 128 });
auto X = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 2, 1, 16 });
auto Y = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 1, 1, 128 });
auto w_val = std::vector<float>(384 * 16, 0);
auto r_val = std::vector<float>(384 * 128, 0);
@ -357,13 +365,14 @@ TEST(TransformationTests, OptimizeGRUSequenceTransposesTest) {
auto reshape_before = std::make_shared<ngraph::opset1::Reshape>(X, reshape_before_const, false);
auto seq_lengths = ngraph::opset1::Constant::create(ngraph::element::i32, ngraph::Shape{ 1 }, { 2 });
auto lstm_seq = std::make_shared<opset5::GRUSequence>(reshape_before, Y, seq_lengths, W, R, B, 128, op::RecurrentSequenceDirection::FORWARD);
auto lstm_seq = std::make_shared<ngraph::opset5::GRUSequence>(reshape_before, Y, seq_lengths, W, R, B, 128,
ngraph::op::RecurrentSequenceDirection::FORWARD);
auto reshape_after_const = ngraph::opset1::Constant::create(ngraph::element::i64, ngraph::Shape{ 4 }, { 2, 1, 1, 128 });
auto reshape_after = std::make_shared<ngraph::opset1::Reshape>(lstm_seq->output(0), reshape_after_const, false);
const auto Y_out = std::make_shared<opset1::Result>(reshape_after);
const auto Ho = std::make_shared<opset1::Result>(lstm_seq->output(1));
const auto Y_out = std::make_shared<ngraph::opset1::Result>(reshape_after);
const auto Ho = std::make_shared<ngraph::opset1::Result>(lstm_seq->output(1));
Y_out->set_friendly_name("Y_out");
Ho->set_friendly_name("Ho");
@ -377,8 +386,8 @@ TEST(TransformationTests, OptimizeGRUSequenceTransposesTest) {
TEST(TransformationTests, OptimizeGRUSequenceTransposesDynamicTest) {
std::shared_ptr<ngraph::Function> f(nullptr), f_ref(nullptr);
{
auto X = std::make_shared<opset1::Parameter>(ngraph::element::f32, PartialShape{ 2, -1, -1 });
auto Y = std::make_shared<opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 1, 1, 128 });
auto X = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::PartialShape{ 2, -1, -1 });
auto Y = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 1, 1, 128 });
auto w_val = std::vector<float>(384 * 16, 0);
auto r_val = std::vector<float>(384 * 128, 0);
@ -391,13 +400,14 @@ TEST(TransformationTests, OptimizeGRUSequenceTransposesDynamicTest) {
auto transpose_before = std::make_shared<ngraph::opset1::Transpose>(X, transpose_before_const);
auto seq_lengths = ngraph::opset1::Constant::create(ngraph::element::i32, ngraph::Shape{ 1 }, { 2 });
auto lstm_seq = std::make_shared<opset5::GRUSequence>(transpose_before, Y, seq_lengths, W, R, B, 128, op::RecurrentSequenceDirection::FORWARD);
auto lstm_seq = std::make_shared<ngraph::opset5::GRUSequence>(transpose_before, Y, seq_lengths, W, R, B, 128,
ngraph::op::RecurrentSequenceDirection::FORWARD);
auto transpose_after_const = ngraph::opset1::Constant::create(ngraph::element::i32, ngraph::Shape{ 4 }, { 2, 1, 0, 3 });
auto transpose_after = std::make_shared<ngraph::opset1::Transpose>(lstm_seq->output(0), transpose_after_const);
const auto Y_out = std::make_shared<opset1::Result>(transpose_after);
const auto Ho = std::make_shared<opset1::Result>(lstm_seq->output(1));
const auto Y_out = std::make_shared<ngraph::opset1::Result>(transpose_after);
const auto Ho = std::make_shared<ngraph::opset1::Result>(lstm_seq->output(1));
Y_out->set_friendly_name("Y_out");
Ho->set_friendly_name("Ho");
@ -410,8 +420,8 @@ TEST(TransformationTests, OptimizeGRUSequenceTransposesDynamicTest) {
}
{
auto X = std::make_shared<opset1::Parameter>(ngraph::element::f32, PartialShape{ 2, -1, -1 });
auto Y = std::make_shared<opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 1, 1, 128 });
auto X = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::PartialShape{ 2, -1, -1 });
auto Y = std::make_shared<ngraph::opset1::Parameter>(ngraph::element::f32, ngraph::Shape{ 1, 1, 128 });
auto w_val = std::vector<float>(384 * 16, 0);
auto r_val = std::vector<float>(384 * 128, 0);
@ -427,13 +437,14 @@ TEST(TransformationTests, OptimizeGRUSequenceTransposesDynamicTest) {
auto reshape_before = std::make_shared<ngraph::opset1::Reshape>(X, reshape_before_pattern, false);
auto seq_lengths = ngraph::opset1::Constant::create(ngraph::element::i32, ngraph::Shape{ 1 }, { 2 });
auto lstm_seq = std::make_shared<opset5::GRUSequence>(reshape_before, Y, seq_lengths, W, R, B, 128, op::RecurrentSequenceDirection::FORWARD);
auto lstm_seq = std::make_shared<ngraph::opset5::GRUSequence>(reshape_before, Y, seq_lengths, W, R, B, 128,
ngraph::op::RecurrentSequenceDirection::FORWARD);
auto reshape_after_const = ngraph::opset1::Constant::create(ngraph::element::i64, ngraph::Shape{ 4 }, { 2, 1, 1, 128 });
auto reshape_after = std::make_shared<ngraph::opset1::Reshape>(lstm_seq->output(0), reshape_after_const, false);
const auto Y_out = std::make_shared<opset1::Result>(reshape_after);
const auto Ho = std::make_shared<opset1::Result>(lstm_seq->output(1));
const auto Y_out = std::make_shared<ngraph::opset1::Result>(reshape_after);
const auto Ho = std::make_shared<ngraph::opset1::Result>(lstm_seq->output(1));
Y_out->set_friendly_name("Y_out");
Ho->set_friendly_name("Ho");