diff --git a/PaddleCV/face_detection/train.py b/PaddleCV/face_detection/train.py index 2108bcc32a378bbb0803032108ddafea4161e202..518c8533e465632e896458b7dec31f624ed7e8a6 100644 --- a/PaddleCV/face_detection/train.py +++ b/PaddleCV/face_detection/train.py @@ -13,7 +13,7 @@ import paddle import paddle.fluid as fluid from pyramidbox import PyramidBox import reader -from utility import add_arguments, print_arguments +from utility import add_arguments, print_arguments, check_cuda parser = argparse.ArgumentParser(description=__doc__) add_arg = functools.partial(add_arguments, argparser=parser) @@ -247,6 +247,7 @@ def get_cards(args): if __name__ == '__main__': args = parser.parse_args() print_arguments(args) + check_cuda(args.use_gpu) data_dir = os.path.join(args.data_dir, 'WIDER_train/images/') train_file_list = os.path.join(args.data_dir, diff --git a/PaddleCV/face_detection/utility.py b/PaddleCV/face_detection/utility.py index aebb9acbf4f450b50f020d96ccd3b13be5d7afaf..7dd9f8d188f29505974879cd8cb7a12c44aa7f6d 100644 --- a/PaddleCV/face_detection/utility.py +++ b/PaddleCV/face_detection/utility.py @@ -17,7 +17,8 @@ from __future__ import division from __future__ import print_function import distutils.util import six - +import sys +import paddle.fluid as fluid def print_arguments(args): """Print argparse's arguments. @@ -58,3 +59,14 @@ def add_arguments(argname, type, default, help, argparser, **kwargs): type=type, help=help + ' Default: %(default)s.', **kwargs) + +def check_cuda(use_cuda, err = \ + "\nYou can not set use_cuda = True in the model because you are using paddlepaddle-cpu.\n \ + Please: 1. Install paddlepaddle-gpu to run your models on GPU or 2. Set use_cuda = False to run models on CPU.\n" + ): + try: + if use_cuda == True and fluid.is_compiled_with_cuda() == False: + print(err) + sys.exit(1) + except Exception as e: + pass \ No newline at end of file diff --git a/PaddleCV/human_pose_estimation/test.py b/PaddleCV/human_pose_estimation/test.py index 8ede66d2d4e2b7eef8adffb70be46ff5ab626b83..ca80216665961f46c9808e202e8729690712358e 100644 --- a/PaddleCV/human_pose_estimation/test.py +++ b/PaddleCV/human_pose_estimation/test.py @@ -133,4 +133,5 @@ def test(args): if __name__ == '__main__': args = parser.parse_args() + check_cuda(args.use_gpu) test(args) diff --git a/PaddleCV/human_pose_estimation/train.py b/PaddleCV/human_pose_estimation/train.py index c6d757321111babbfa4c0c37d5cb12bbab92ac3c..39030459bbd20b2a04f60445860bc5ac287c98ce 100644 --- a/PaddleCV/human_pose_estimation/train.py +++ b/PaddleCV/human_pose_estimation/train.py @@ -175,5 +175,6 @@ def train(args): if __name__ == '__main__': args = parser.parse_args() + check_cuda(args.use_gpu) train(args) diff --git a/PaddleCV/human_pose_estimation/utils/utility.py b/PaddleCV/human_pose_estimation/utils/utility.py index 698d0231b8230bb367f5455ce7bab690d911c03b..1dd5da20e16344b7fd6c08c73490aca0f358a64d 100644 --- a/PaddleCV/human_pose_estimation/utils/utility.py +++ b/PaddleCV/human_pose_estimation/utils/utility.py @@ -23,7 +23,8 @@ import distutils.util import numpy as np import cv2 from pathlib import Path - +import sys +import paddle.fluid as fluid def print_arguments(args): """Print argparse's arguments. @@ -395,3 +396,14 @@ class AverageMeter(object): self.sum += val * n self.count += n self.avg = self.sum / self.count if self.count != 0 else 0 + +def check_cuda(use_cuda, err = \ + "\nYou can not set use_cuda = True in the model because you are using paddlepaddle-cpu.\n \ + Please: 1. Install paddlepaddle-gpu to run your models on GPU or 2. Set use_cuda = False to run models on CPU.\n" + ): + try: + if use_cuda == True and fluid.is_compiled_with_cuda() == False: + print(err) + sys.exit(1) + except Exception as e: + pass diff --git a/PaddleCV/human_pose_estimation/val.py b/PaddleCV/human_pose_estimation/val.py index 4224ec1ec50fbfec473a573ef4624350c66e2215..435673aa12d40af60f1ef9aafbe9f3b32d4ceefe 100644 --- a/PaddleCV/human_pose_estimation/val.py +++ b/PaddleCV/human_pose_estimation/val.py @@ -230,4 +230,5 @@ def valid(args): if __name__ == '__main__': args = parser.parse_args() + check_cuda(args.use_gpu) valid(args) diff --git a/PaddleCV/metric_learning/eval.py b/PaddleCV/metric_learning/eval.py index 9922038bae207683732c1637b3fe3ced57fcb5e3..de1bc1fc19dd09e768e3b41c54ef58c0ffdfa02d 100644 --- a/PaddleCV/metric_learning/eval.py +++ b/PaddleCV/metric_learning/eval.py @@ -13,7 +13,7 @@ import paddle import paddle.fluid as fluid import models import reader -from utility import add_arguments, print_arguments +from utility import add_arguments, print_arguments, check_cuda from utility import fmt_time, recall_topk # yapf: disable @@ -93,6 +93,7 @@ def eval(args): def main(): args = parser.parse_args() print_arguments(args) + check_cuda(args.use_gpu) eval(args) diff --git a/PaddleCV/metric_learning/infer.py b/PaddleCV/metric_learning/infer.py index 2ee6cfb29eba935811ae576e3a450420b6c6be64..c14b5fddd2286ad49fc118ea364e20011a244f27 100644 --- a/PaddleCV/metric_learning/infer.py +++ b/PaddleCV/metric_learning/infer.py @@ -13,7 +13,7 @@ import paddle import paddle.fluid as fluid import models import reader -from utility import add_arguments, print_arguments +from utility import add_arguments, print_arguments, check_cuda parser = argparse.ArgumentParser(description=__doc__) add_arg = functools.partial(add_arguments, argparser=parser) @@ -77,6 +77,7 @@ def infer(args): def main(): args = parser.parse_args() print_arguments(args) + check_cuda(args.use_gpu) infer(args) diff --git a/PaddleCV/metric_learning/train_elem.py b/PaddleCV/metric_learning/train_elem.py index 7a4feb236b20e56a13907251e6d9f5fb86533ef7..9d0dbb5a3d3a633e4406bfeb699dd4c2ffa20bc0 100644 --- a/PaddleCV/metric_learning/train_elem.py +++ b/PaddleCV/metric_learning/train_elem.py @@ -19,7 +19,7 @@ import reader from losses import SoftmaxLoss from losses import ArcMarginLoss from utility import add_arguments, print_arguments -from utility import fmt_time, recall_topk, get_gpu_num +from utility import fmt_time, recall_topk, get_gpu_num, check_cuda parser = argparse.ArgumentParser(description=__doc__) add_arg = functools.partial(add_arguments, argparser=parser) @@ -283,6 +283,7 @@ def initlogging(): def main(): args = parser.parse_args() print_arguments(args) + check_cuda(args.use_gpu) train_async(args) diff --git a/PaddleCV/metric_learning/train_pair.py b/PaddleCV/metric_learning/train_pair.py index 0ae7b5a241869672d1c0d52a4c6fa30b6cbce860..022a72eeb5128d507aaee70a1142cad771f25b5c 100644 --- a/PaddleCV/metric_learning/train_pair.py +++ b/PaddleCV/metric_learning/train_pair.py @@ -21,7 +21,7 @@ from losses import QuadrupletLoss from losses import EmlLoss from losses import NpairsLoss from utility import add_arguments, print_arguments -from utility import fmt_time, recall_topk, get_gpu_num +from utility import fmt_time, recall_topk, get_gpu_num, check_cuda parser = argparse.ArgumentParser(description=__doc__) add_arg = functools.partial(add_arguments, argparser=parser) @@ -275,6 +275,7 @@ def initlogging(): def main(): args = parser.parse_args() print_arguments(args) + check_cuda(args.use_gpu) train_async(args) diff --git a/PaddleCV/metric_learning/utility.py b/PaddleCV/metric_learning/utility.py index e3a109ca104208c596d0096f94cedcd9b36bc5ed..f093f56d2dfa9a0ce147a525c143813d5ed59942 100644 --- a/PaddleCV/metric_learning/utility.py +++ b/PaddleCV/metric_learning/utility.py @@ -23,7 +23,8 @@ import time import subprocess import distutils.util import numpy as np - +import sys +import paddle.fluid as fluid from paddle.fluid import core @@ -101,3 +102,14 @@ def get_gpu_num(): [str.encode('nvidia-smi'), str.encode('-L')]).decode('utf-8').count('\n') return devicenum +def check_cuda(use_cuda, err = \ + "\nYou can not set use_cuda = True in the model because you are using paddlepaddle-cpu.\n \ + Please: 1. Install paddlepaddle-gpu to run your models on GPU or 2. Set use_cuda = False to run models on CPU.\n" + ): + try: + if use_cuda == True and fluid.is_compiled_with_cuda() == False: + print(err) + sys.exit(1) + except Exception as e: + pass + diff --git a/PaddleCV/ssd/eval.py b/PaddleCV/ssd/eval.py index 0e3d68f61ed9e174198cda303ed978537ab23689..ed9315edbf64794db49a5387704876e7745e85ad 100644 --- a/PaddleCV/ssd/eval.py +++ b/PaddleCV/ssd/eval.py @@ -9,7 +9,7 @@ import paddle import paddle.fluid as fluid import reader from mobilenet_ssd import build_mobilenet_ssd -from utility import add_arguments, print_arguments +from utility import add_arguments, print_arguments, check_cuda parser = argparse.ArgumentParser(description=__doc__) add_arg = functools.partial(add_arguments, argparser=parser) @@ -105,6 +105,8 @@ if __name__ == '__main__': args = parser.parse_args() print_arguments(args) + check_cuda(args.use_gpu) + data_dir = 'data/pascalvoc' test_list = 'test.txt' label_file = 'label_list' diff --git a/PaddleCV/ssd/infer.py b/PaddleCV/ssd/infer.py index 3e43db54c4e3b0f868ae7711f5fdd8346bd29b72..5326c76437136fc4b33c5a4619255ef43cd931a0 100644 --- a/PaddleCV/ssd/infer.py +++ b/PaddleCV/ssd/infer.py @@ -11,7 +11,7 @@ import paddle import paddle.fluid as fluid import reader from mobilenet_ssd import build_mobilenet_ssd -from utility import add_arguments, print_arguments +from utility import add_arguments, print_arguments, check_cuda parser = argparse.ArgumentParser(description=__doc__) add_arg = functools.partial(add_arguments, argparser=parser) @@ -117,6 +117,8 @@ if __name__ == '__main__': args = parser.parse_args() print_arguments(args) + check_cuda(args.use_gpu) + data_dir = 'data/pascalvoc' label_file = 'label_list' diff --git a/PaddleCV/ssd/train.py b/PaddleCV/ssd/train.py index ab68e4140c816c039e03c636bab81dbc1f1d5c1b..40350b33cc4dd417b935bb21eaa4420ab142ac6d 100644 --- a/PaddleCV/ssd/train.py +++ b/PaddleCV/ssd/train.py @@ -11,7 +11,7 @@ import paddle import paddle.fluid as fluid import reader from mobilenet_ssd import build_mobilenet_ssd -from utility import add_arguments, print_arguments +from utility import add_arguments, print_arguments, check_cuda parser = argparse.ArgumentParser(description=__doc__) add_arg = functools.partial(add_arguments, argparser=parser) @@ -288,6 +288,8 @@ def main(): args = parser.parse_args() print_arguments(args) + check_cuda(args.use_gpu) + data_dir = args.data_dir dataset = args.dataset assert dataset in ['pascalvoc', 'coco2014', 'coco2017'] diff --git a/PaddleCV/ssd/utility.py b/PaddleCV/ssd/utility.py index 746ce25a73979a9026f740fc8fce483857677082..5fca8b592f54ff147305783b7d3bf0f29cc1fe41 100644 --- a/PaddleCV/ssd/utility.py +++ b/PaddleCV/ssd/utility.py @@ -18,9 +18,9 @@ from __future__ import division from __future__ import print_function import distutils.util -import numpy as np +import sys import six -from paddle.fluid import core +import paddle.fluid as fluid def print_arguments(args): @@ -62,3 +62,14 @@ def add_arguments(argname, type, default, help, argparser, **kwargs): type=type, help=help + ' Default: %(default)s.', **kwargs) + +def check_cuda(use_cuda, err = \ + "\nYou can not set use_cuda = True in the model because you are using paddlepaddle-cpu.\n \ + Please: 1. Install paddlepaddle-gpu to run your models on GPU or 2. Set use_cuda = False to run models on CPU.\n" + ): + try: + if use_cuda == True and fluid.is_compiled_with_cuda() == False: + print(err) + sys.exit(1) + except Exception as e: + pass \ No newline at end of file