From 94eaf94cf57ec2cc951d046e847b69c348b8f9c9 Mon Sep 17 00:00:00 2001
From: tangwei12 <tangwei12@baidu.com>
Date: Wed, 30 May 2018 21:51:16 +0800
Subject: [PATCH] bug fix about lru and save

---
 python/paddle/fluid/io.py | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/python/paddle/fluid/io.py b/python/paddle/fluid/io.py
index d52c9a8823..8e10b01a4a 100644
--- a/python/paddle/fluid/io.py
+++ b/python/paddle/fluid/io.py
@@ -495,11 +495,11 @@ def save_checkpoint(executor,
     serial = _get_lastest_checkpoint_dir(checkpoint_dir) + 1
     cur_dir = _get_serial_dir(checkpoint_dir, serial)
 
+    save_trainer_args(cur_dir, trainer_id, trainer_args)
+
     if is_chief:
         save_persist_vars_without_grad(executor, cur_dir, main_program)
-
-    save_trainer_args(cur_dir, trainer_id, trainer_args)
-    _lru_delete(checkpoint_dir, max_num_checkpoints)
+        _lru_delete(checkpoint_dir, max_num_checkpoints)
 
 
 def need_load_checkpoint(checkpoint_dir):
@@ -639,7 +639,13 @@ def _is_checkpoint_var(var):
             var.desc.type() == core.VarDesc.VarType.RAW:
         return False
 
-    if var.name.endswith("@GRAD"):
+    if "@GRAD" in var.name:
+        return False
+
+    if ".trainer_" in var.name:
+        return False
+
+    if ".block" in var.name:
         return False
 
     return var.persistable