diff --git a/mace/kernels/conv_2d.h b/mace/kernels/conv_2d.h index be134f7b24d63812de449eff5f046f87cdcb02cb..790d6f3a9af3174db254a3deecbd9c717305341d 100644 --- a/mace/kernels/conv_2d.h +++ b/mace/kernels/conv_2d.h @@ -424,7 +424,9 @@ struct Conv2dFunctor : Conv2dFunctorBase { transformed_filter_ptr = transformed_filter_.data(); } - conv_func = [&](const float *pad_input, float *pad_output) { + float *transformed_input_data = transformed_input.mutable_data(); + float *transformed_output_data = transformed_output.mutable_data(); + conv_func = [=](const float *pad_input, float *pad_output) { WinoGradConv3x3s1(pad_input, transformed_filter_ptr, batch, @@ -433,8 +435,8 @@ struct Conv2dFunctor : Conv2dFunctorBase { input_channels, channels, winograd_out_tile_size, - transformed_input.mutable_data(), - transformed_output.mutable_data(), + transformed_input_data, + transformed_output_data, pad_output); }; } else if (use_neon_3x3_s1) {