File tree 2 files changed +10
-4
lines changed
2 files changed +10
-4
lines changed Original file line number Diff line number Diff line change @@ -44,14 +44,17 @@ std::vector<Tensor> ExecutorEngine::operator()(
44
44
std::vector<DenseTensor> ExecutorEngine::operator ()(
45
45
const std::vector<DenseTensor> &inputs) {
46
46
utils::ShareIntoScope (info_->InputArgNames (), inputs, &scope_);
47
+ const auto out_names = info_->OutputArgNames ();
47
48
inner_exe_.Run (info_->ProgramDesc (),
48
49
&scope_,
49
50
/* blockID=*/ 0 ,
50
51
false ,
51
52
true ,
52
- info_-> OutputArgNames () );
53
+ out_names );
53
54
std::vector<DenseTensor> outputs;
54
- utils::FetchOuts (info_->OutputArgNames (), scope_, &outputs);
55
+ utils::FetchOuts (out_names, scope_, &outputs);
56
+ // Erase output vars to avoid data rewriting.
57
+ scope_.EraseVars (out_names);
55
58
return outputs;
56
59
}
57
60
Original file line number Diff line number Diff line change @@ -96,12 +96,15 @@ std::vector<Tensor> PEEngine::operator()(const std::vector<Tensor> &inputs) {
96
96
std::vector<DenseTensor> PEEngine::operator ()(
97
97
const std::vector<DenseTensor> &inputs) {
98
98
utils::ShareIntoScope (info_->InputArgNames (), inputs, &scope_);
99
+ const auto out_names = info_->OutputArgNames ();
99
100
// need to recreate tmp variables in new scope
100
101
inner_pe_->PrepareVariables (&scope_);
101
- inner_pe_->RunWithoutFetch (info_-> OutputArgNames () );
102
+ inner_pe_->RunWithoutFetch (out_names );
102
103
103
104
std::vector<DenseTensor> outputs;
104
- utils::FetchOuts (info_->OutputArgNames (), scope_, &outputs);
105
+ utils::FetchOuts (out_names, scope_, &outputs);
106
+ // Erase output vars to avoid data rewriting.
107
+ scope_.EraseVars (out_names);
105
108
scope_.DropKids ();
106
109
return outputs;
107
110
}
You can’t perform that action at this time.
0 commit comments