in ngraph_bridge/ngraph_conversions.h [50:66]
void Transpose3D(ngraph::Output<ngraph::Node>& node) {
static_assert(a < 5 && b < 5 && c < 5 && d < 5 && e < 5,
"Number of dimensions cannot exceed 5");
static_assert(a != b && a != c && a != d && a != e && b != c && b != d &&
b != e && c != d && c != e && d != e,
"Dimensions indices cannot be equal");
auto& s = node.get_shape();
ngraph::Shape reshaped_shape{s[a], s[b], s[c], s[d], s[e]};
ngraph::Shape transpose_order{a, b, c, d, e};
NGRAPH_VLOG(3) << "transposing " << ngraph::join(s) << " to "
<< ngraph::join(reshaped_shape) << "axis-order "
<< ngraph::join(transpose_order);
auto input_order = std::make_shared<opset::Constant>(
ngraph::element::u64, ngraph::Shape{transpose_order.size()},
transpose_order);
node = std::make_shared<opset::Transpose>(node, input_order);
}