From 1b86bb5a3b41a6b421ec46b758910c5c96d9947e Mon Sep 17 00:00:00 2001 From: Teng Xi Date: Thu, 4 Jun 2020 17:33:13 +0800 Subject: [PATCH] Cherry pick 1.1.1 (#332) * fix conflict * fix windows CPU envs (#315) * change scipy.misc.imread() to imageio.imread() (#324) * adapt PY2 PY3 (#326) --- demo/slimfacenet/dataloader/casia.py | 8 ++++++-- demo/slimfacenet/dataloader/lfw.py | 11 +++++++---- demo/slimfacenet/train_eval.py | 23 ++++++++++++++--------- 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/demo/slimfacenet/dataloader/casia.py b/demo/slimfacenet/dataloader/casia.py index 7faec56c..59dcdd3e 100644 --- a/demo/slimfacenet/dataloader/casia.py +++ b/demo/slimfacenet/dataloader/casia.py @@ -13,7 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. import numpy as np -import scipy.misc +import six +if six.PY2: + import scipy.misc as imgreader +else: + import imageio as imgreader import os import paddle from paddle import fluid @@ -54,7 +58,7 @@ class CASIA_Face(object): target = self.label_list[index] try: - img = scipy.misc.imread(img_path) + img = imgreader.imread(img_path) except: continue diff --git a/demo/slimfacenet/dataloader/lfw.py b/demo/slimfacenet/dataloader/lfw.py index 46bb60c9..e13fd513 100644 --- a/demo/slimfacenet/dataloader/lfw.py +++ b/demo/slimfacenet/dataloader/lfw.py @@ -13,8 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. import numpy as np -import scipy.misc - +import six +if six.PY2: + import scipy.misc as imgreader +else: + import imageio as imgreader import paddle from paddle import fluid @@ -33,10 +36,10 @@ class LFW(object): return index = self.shuffle_idx.pop(0) - imgl = scipy.misc.imread(self.imgl_list[index]) + imgl = imgreader.imread(self.imgl_list[index]) if len(imgl.shape) == 2: imgl = np.stack([imgl] * 3, 2) - imgr = scipy.misc.imread(self.imgr_list[index]) + imgr = imgreader.imread(self.imgr_list[index]) if len(imgr.shape) == 2: imgr = np.stack([imgr] * 3, 2) diff --git a/demo/slimfacenet/train_eval.py b/demo/slimfacenet/train_eval.py index a779feb3..af1b12d0 100644 --- a/demo/slimfacenet/train_eval.py +++ b/demo/slimfacenet/train_eval.py @@ -150,7 +150,10 @@ def train(exe, train_program, train_out, test_program, test_out, args): def build_program(program, startup, args, is_train=True): - num_trainers = len(os.getenv('CUDA_VISIBLE_DEVICES').split(',')) + if args.use_gpu: + num_trainers = fluid.core.get_cuda_device_count() + else: + num_trainers = int(os.environ.get('CPU_NUM', 1)) places = fluid.cuda_places() if args.use_gpu else fluid.CPUPlace() train_dataset = CASIA_Face(root=args.train_data_dir) @@ -166,7 +169,7 @@ def build_program(program, startup, args, is_train=True): image = fluid.data( name='image', shape=[-1, 3, 112, 96], dtype='float32') label = fluid.data(name='label', shape=[-1, 1], dtype='int64') - train_reader = paddle.batch( + train_reader = fluid.io.batch( train_dataset.reader, batch_size=args.train_batchsize // num_trainers, drop_last=False) @@ -187,7 +190,7 @@ def build_program(program, startup, args, is_train=True): else: nl, nr, flods, flags = parse_filelist(args.test_data_dir) test_dataset = LFW(nl, nr) - test_reader = paddle.batch( + test_reader = fluid.io.batch( test_dataset.reader, batch_size=args.test_batchsize, drop_last=False) @@ -231,7 +234,7 @@ def build_program(program, startup, args, is_train=True): def quant_val_reader_batch(): nl, nr, flods, flags = parse_filelist(args.test_data_dir) test_dataset = LFW(nl, nr) - test_reader = paddle.batch( + test_reader = fluid.io.batch( test_dataset.reader, batch_size=1, drop_last=False) shuffle_reader = fluid.io.shuffle(test_reader, 3) @@ -298,14 +301,16 @@ def main(): help='The path of the extract features save, must be .mat file') args = parser.parse_args() - num_trainers = len(os.getenv('CUDA_VISIBLE_DEVICES').split(',')) + if args.use_gpu: + num_trainers = fluid.core.get_cuda_device_count() + else: + num_trainers = int(os.environ.get('CPU_NUM', 1)) print(args) print('num_trainers: {}'.format(num_trainers)) if args.save_ckpt == None: args.save_ckpt = 'output' - if not os.path.exists(args.save_ckpt): - subprocess.call(['mkdir', '-p', args.save_ckpt]) - + if not os.path.isdir(args.save_ckpt): + os.makedirs(args.save_ckpt) with open(os.path.join(args.save_ckpt, 'log.txt'), 'w+') as f: f.writelines(str(args) + '\n') f.writelines('num_trainers: {}'.format(num_trainers) + '\n') @@ -346,7 +351,7 @@ def main(): executor=exe) nl, nr, flods, flags = parse_filelist(args.test_data_dir) test_dataset = LFW(nl, nr) - test_reader = paddle.batch( + test_reader = fluid.io.batch( test_dataset.reader, batch_size=args.test_batchsize, drop_last=False) -- GitLab