|
|
|
@ -141,6 +141,23 @@ void UpdatePreTensors(kernel::LiteKernel *cur_kernel) {
|
|
|
|
|
|
|
|
|
|
void UpdatePostTensors(kernel::LiteKernel *cur_kernel) {
|
|
|
|
|
auto tensor = cur_kernel->out_tensors()[0];
|
|
|
|
|
|
|
|
|
|
// in case: node->nh2nc->nc2nh(graph output) --->>> node->nc2nh, node out_tensor should be put to nnc2nh out tensors
|
|
|
|
|
auto out_kernels = cur_kernel->out_kernels();
|
|
|
|
|
if (out_kernels.size() == 1 && out_kernels[0]->out_kernels().size() == 1 &&
|
|
|
|
|
out_kernels[0]->out_kernels()[0]->out_kernels().empty() &&
|
|
|
|
|
out_kernels[0]->out_kernels()[0]->type_str() == "Transpose") {
|
|
|
|
|
auto nc_tensor = out_kernels[0]->out_tensors()[0]; // nh2nc's out tensor
|
|
|
|
|
cur_kernel->set_out_tensors({nc_tensor});
|
|
|
|
|
auto post_post_kernel = out_kernels[0]->out_kernels()[0];
|
|
|
|
|
// nc2nh kernel set in_tensor out_tensor
|
|
|
|
|
auto post_post_k_in_tensors = post_post_kernel->in_tensors();
|
|
|
|
|
post_post_k_in_tensors[0] = nc_tensor;
|
|
|
|
|
post_post_kernel->set_in_tensors(post_post_k_in_tensors);
|
|
|
|
|
post_post_kernel->set_out_tensors({tensor});
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
tensor->set_format(schema::Format_NCHW);
|
|
|
|
|
auto nhwc_shape = tensor->shape();
|
|
|
|
|
tensor->set_shape({nhwc_shape[0], nhwc_shape[3], nhwc_shape[1], nhwc_shape[2]});
|
|
|
|
|