diff --git a/paddle/fluid/inference/tensorrt/convert/leaky_relu_op.cc b/paddle/fluid/inference/tensorrt/convert/leaky_relu_op.cc index 810295e1919ea82062c72ae9fa8d5f06de6106d5..b3244ef84d8e08a5049ad7b77b02340287bf6c8e 100644 --- a/paddle/fluid/inference/tensorrt/convert/leaky_relu_op.cc +++ b/paddle/fluid/inference/tensorrt/convert/leaky_relu_op.cc @@ -72,7 +72,10 @@ class LeakyReluOpConverter : public OpConverter { nvinfer1::ElementWiseOperation::kSUM); PADDLE_ENFORCE(nullptr != output_layer); // keep alpha tensor to avoid release it's memory - engine_->weight_map[op_desc.Input("alpha")[0]] = std::move(alpha_tensor); + std::string alpha_name = op_desc.Output("Out")[0] + "_alpha"; + PADDLE_ENFORCE(engine_->weight_map.find(alpha_name) == + engine_->weight_map.end()); + engine_->weight_map[alpha_name] = std::move(alpha_tensor); std::string layer_name = "leaky_relu (Output: "; auto output_name = op_desc.Output("Out")[0]; diff --git a/paddle/fluid/inference/tensorrt/convert/test_leaky_relu_op.cc b/paddle/fluid/inference/tensorrt/convert/test_leaky_relu_op.cc index 6fcf78abe43f5bc4924de66beba047ef3e0b654c..d00826af075159004d3727a7519e7c319dbddb02 100644 --- a/paddle/fluid/inference/tensorrt/convert/test_leaky_relu_op.cc +++ b/paddle/fluid/inference/tensorrt/convert/test_leaky_relu_op.cc @@ -20,8 +20,8 @@ namespace paddle { namespace inference { namespace tensorrt { -TEST(leaky_relu_op, test_channel_wise) { - std::unordered_set parameters({"leaky_relu_alpha"}); +TEST(leaky_relu_op, test_leaky_relu) { + std::unordered_set parameters; framework::Scope scope; TRTConvertValidation validator(10, parameters, scope, 1000); validator.DeclInputVar("leaky_relu_input", nvinfer1::DimsCHW(3, 2, 2));