From 60094207cca5439205a88828908198eaec25c5eb Mon Sep 17 00:00:00 2001 From: lujun Date: Wed, 5 Jun 2019 11:11:55 +0800 Subject: [PATCH] fix dataset-flowers random fail. test=develop (#17836) fix flower-dataset unclose error --- python/paddle/dataset/flowers.py | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/python/paddle/dataset/flowers.py b/python/paddle/dataset/flowers.py index 5728a37fc3..e048639ae1 100644 --- a/python/paddle/dataset/flowers.py +++ b/python/paddle/dataset/flowers.py @@ -117,20 +117,23 @@ def reader_creator(data_file, def reader(): while True: - for file in open(file_list): - file = file.strip() - batch = None - with open(file, 'rb') as f: - if six.PY2: - batch = pickle.load(f) - else: - batch = pickle.load(f, encoding='bytes') - if six.PY3: - batch = cpt.to_text(batch) - data = batch['data'] - labels = batch['label'] - for sample, label in six.moves.zip(data, batch['label']): - yield sample, int(label) - 1 + with open(file_list, 'r') as f_list: + for file in f_list: + file = file.strip() + batch = None + with open(file, 'rb') as f: + if six.PY2: + batch = pickle.load(f) + else: + batch = pickle.load(f, encoding='bytes') + + if six.PY3: + batch = cpt.to_text(batch) + data_batch = batch['data'] + labels_batch = batch['label'] + for sample, label in six.moves.zip(data_batch, + labels_batch): + yield sample, int(label) - 1 if not cycle: break -- GitLab