diff --git a/paddle/fluid/framework/operator.cc b/paddle/fluid/framework/operator.cc
index fae33f55b054b1dde8ac7bf7cd931d5de911c5aa..7756fe4f8f2289c6523f3c5c788c204b4ad7c6be 100644
--- a/paddle/fluid/framework/operator.cc
+++ b/paddle/fluid/framework/operator.cc
@@ -1023,7 +1023,6 @@ Scope* OperatorWithKernel::PrepareData(
     std::vector<std::string>* transfered_inplace_vars,
     RuntimeContext* ctx) const {
   Scope* new_scope = nullptr;
-  if (!need_prepare_data_) return new_scope;
 
   std::unordered_set<std::string> no_buffer_ins;
   if (info_) {
@@ -1116,10 +1115,6 @@ Scope* OperatorWithKernel::PrepareData(
       SetTensorToVariable(*var, out, trans_var);
     }
   }
-  // If new_scope = nullptr, it means that for each input of this Op, there is
-  // no TransformData. Thus, PrepareData could be skipped at the rest iterations
-  // of this Op's execution to save the elapsed time.
-  if (!new_scope) need_prepare_data_ = false;
 
   return new_scope;
 }
diff --git a/paddle/fluid/framework/operator.h b/paddle/fluid/framework/operator.h
index 4bc94b4c5cd537937a17653713a888fc28fd0177..3332530b3c0be1e7e91a741d4ff3731b22fdb4da 100644
--- a/paddle/fluid/framework/operator.h
+++ b/paddle/fluid/framework/operator.h
@@ -507,7 +507,6 @@ class OperatorWithKernel : public OperatorBase {
   mutable std::unique_ptr<OpKernelFunc> kernel_func_;
   mutable std::unique_ptr<RuntimeContext> runtime_ctx_;
   mutable const Scope* pre_scope_ = nullptr;
-  mutable bool need_prepare_data_ = true;
   mutable bool enable_cache_runtime_context = false;
   mutable bool enable_cache_expected_kernel = false;
   mutable bool all_kernels_must_compute_runtime_shape = false;