25 const std::vector<ITensor *> &dst_tensors,
26 const std::vector<ITensor *> &input_back_prop_tensors,
27 const std::vector<ITensor *> &output_back_prop_tensors,
28 const std::vector<ir::PermuteType> &types,
29 bool ignore_forward_in_training,
30 const std::shared_ptr<ExternalContext> &external_context)
31 : builtin::kernel::
PermuteLayer{src_tensors, dst_tensors, types, external_context},
32 _input_back_prop_tensors{input_back_prop_tensors},
33 _output_back_prop_tensors{output_back_prop_tensors},
34 _ignore_forward_in_training{ignore_forward_in_training}
36 assert(input_back_prop_tensors.size() == output_back_prop_tensors.size());
37 assert(src_tensors.size() == dst_tensors.size());
57 for (uint32_t i = 0; i < _output_back_prop_tensors.size(); ++i)
59 auto src_back_prop = _output_back_prop_tensors.at(i);
60 auto dst_back_prop = _input_back_prop_tensors.at(i);
64 if (src_back_prop && dst_back_prop)
66 const auto rank = src_back_prop->getShape().rank();
72 input_offsets, permute_type);