From f8910d0c9de61d63cc300074f0e3d9f6c01bbe0a Mon Sep 17 00:00:00 2001 From: jm12138 <2286040843@qq.com> Date: Thu, 10 Dec 2020 11:19:23 +0800 Subject: [PATCH] fix the gpu_id bug --- .../hand_pose_localization/model.py | 35 ++++++++++--------- .../hand_pose_localization/module.py | 3 +- .../image/style_transfer/UGATIT_100w/model.py | 26 ++++++++------ .../style_transfer/UGATIT_100w/module.py | 2 +- .../image/style_transfer/UGATIT_83w/model.py | 26 ++++++++------ .../image/style_transfer/UGATIT_83w/module.py | 2 +- .../image/style_transfer/UGATIT_92w/model.py | 26 ++++++++------ .../image/style_transfer/UGATIT_92w/module.py | 2 +- .../animegan_v1_hayao_60/model.py | 30 +++++++++------- .../animegan_v1_hayao_60/module.py | 2 +- .../animegan_v2_hayao_64/model.py | 30 +++++++++------- .../animegan_v2_hayao_64/module.py | 2 +- .../animegan_v2_hayao_99/model.py | 30 +++++++++------- .../animegan_v2_hayao_99/module.py | 2 +- .../animegan_v2_paprika_54/model.py | 30 +++++++++------- .../animegan_v2_paprika_54/module.py | 2 +- .../animegan_v2_paprika_74/model.py | 30 +++++++++------- .../animegan_v2_paprika_74/module.py | 2 +- .../animegan_v2_paprika_97/model.py | 30 +++++++++------- .../animegan_v2_paprika_97/module.py | 2 +- .../animegan_v2_paprika_98/model.py | 30 +++++++++------- .../animegan_v2_paprika_98/module.py | 2 +- .../animegan_v2_shinkai_33/model.py | 30 +++++++++------- .../animegan_v2_shinkai_33/module.py | 2 +- .../animegan_v2_shinkai_53/model.py | 30 +++++++++------- .../animegan_v2_shinkai_53/module.py | 2 +- 26 files changed, 242 insertions(+), 168 deletions(-) diff --git a/hub_module/modules/image/keypoint_detection/hand_pose_localization/model.py b/hub_module/modules/image/keypoint_detection/hand_pose_localization/model.py index c79e8177..acc47f7f 100644 --- a/hub_module/modules/image/keypoint_detection/hand_pose_localization/model.py +++ b/hub_module/modules/image/keypoint_detection/hand_pose_localization/model.py @@ -7,9 +7,9 @@ __all__ = ['Model'] class Model(): # 初始化函数 - def __init__(self, modelpath, use_gpu): + def __init__(self, modelpath, use_gpu=False, use_mkldnn=True, combined=True): # 加载模型预测器 - self.predictor = self.load_model(modelpath, use_gpu) + self.predictor = self.load_model(modelpath, use_gpu, use_mkldnn, combined) # 获取模型的输入输出 self.input_names = self.predictor.get_input_names() @@ -18,31 +18,33 @@ class Model(): self.output_tensor = self.predictor.get_output_tensor(self.output_names[0]) # 模型加载函数 - def load_model(self, modelpath, use_gpu): + def load_model(self, modelpath, use_gpu, use_mkldnn, combined): # 对运行位置进行配置 if use_gpu: try: - places = os.environ["CUDA_VISIBLE_DEVICES"] - places = int(places[0]) - except Exception as e: - print('Error: %s. Please set the environment variables "CUDA_VISIBLE_DEVICES".' % e) + int(os.environ.get('CUDA_VISIBLE_DEVICES')) + except Exception: + print('Error! Unable to use GPU. Please set the environment variables "CUDA_VISIBLE_DEVICES=GPU_id" to use GPU.') use_gpu = False - - # 预训练模型路径 - model = os.path.join(modelpath, "__model__") - params = os.path.join(modelpath, "__params__") - + # 加载模型参数 - config = AnalysisConfig(model, params) + if combined: + model = os.path.join(modelpath, "__model__") + params = os.path.join(modelpath, "__params__") + config = AnalysisConfig(model, params) + else: + config = AnalysisConfig(modelpath) # 设置参数 if use_gpu: - config.enable_use_gpu(100, places) + config.enable_use_gpu(100, 0) else: config.disable_gpu() - config.enable_mkldnn() + if use_mkldnn: + config.enable_mkldnn() config.disable_glog_info() config.switch_ir_optim(True) + config.enable_memory_optim() config.switch_use_feed_fetch_ops(False) config.switch_specify_input_names(True) @@ -58,7 +60,8 @@ class Model(): # 遍历输入数据进行预测 for input_data in input_datas: - self.input_tensor.copy_from_cpu(input_data) + inputs = input_data.copy() + self.input_tensor.copy_from_cpu(inputs) self.predictor.zero_copy_run() output = self.output_tensor.copy_to_cpu() outputs.append(output) diff --git a/hub_module/modules/image/keypoint_detection/hand_pose_localization/module.py b/hub_module/modules/image/keypoint_detection/hand_pose_localization/module.py index 74a41253..04e5342a 100644 --- a/hub_module/modules/image/keypoint_detection/hand_pose_localization/module.py +++ b/hub_module/modules/image/keypoint_detection/hand_pose_localization/module.py @@ -1,4 +1,3 @@ -# coding=utf-8 import os from paddlehub import Module @@ -22,7 +21,7 @@ class Hand_Pose_Localization(Module): self.model_path = os.path.join(self.directory, "hand_pose_localization") # 加载模型 - self.model = Model(self.model_path, use_gpu) + self.model = Model(self.model_path, use_gpu=use_gpu, use_mkldnn=False, combined=True) # 关键点检测函数 def keypoint_detection( diff --git a/hub_module/modules/image/style_transfer/UGATIT_100w/model.py b/hub_module/modules/image/style_transfer/UGATIT_100w/model.py index f1639493..66db7bba 100644 --- a/hub_module/modules/image/style_transfer/UGATIT_100w/model.py +++ b/hub_module/modules/image/style_transfer/UGATIT_100w/model.py @@ -7,9 +7,9 @@ __all__ = ['Model'] class Model(): # 初始化函数 - def __init__(self, modelpath, use_gpu): + def __init__(self, modelpath, use_gpu=False, use_mkldnn=True, combined=True): # 加载模型预测器 - self.predictor = self.load_model(modelpath, use_gpu) + self.predictor = self.load_model(modelpath, use_gpu, use_mkldnn, combined) # 获取模型的输入输出 self.input_names = self.predictor.get_input_names() @@ -18,24 +18,30 @@ class Model(): self.output_tensor = self.predictor.get_output_tensor(self.output_names[0]) # 模型加载函数 - def load_model(self, modelpath, use_gpu): + def load_model(self, modelpath, use_gpu, use_mkldnn, combined): # 对运行位置进行配置 if use_gpu: try: - places = os.environ["CUDA_VISIBLE_DEVICES"] - places = int(places[0]) - except Exception as e: - print('Error: %s. Please set the environment variables "CUDA_VISIBLE_DEVICES".' % e) + int(os.environ.get('CUDA_VISIBLE_DEVICES')) + except Exception: + print('Error! Unable to use GPU. Please set the environment variables "CUDA_VISIBLE_DEVICES=GPU_id" to use GPU.') use_gpu = False - + # 加载模型参数 - config = AnalysisConfig(modelpath) + if combined: + model = os.path.join(modelpath, "__model__") + params = os.path.join(modelpath, "__params__") + config = AnalysisConfig(model, params) + else: + config = AnalysisConfig(modelpath) # 设置参数 if use_gpu: - config.enable_use_gpu(100, places) + config.enable_use_gpu(100, 0) else: config.disable_gpu() + if use_mkldnn: + config.enable_mkldnn() config.disable_glog_info() config.switch_ir_optim(True) config.enable_memory_optim() diff --git a/hub_module/modules/image/style_transfer/UGATIT_100w/module.py b/hub_module/modules/image/style_transfer/UGATIT_100w/module.py index 5a2bdd0f..f00f3ae1 100644 --- a/hub_module/modules/image/style_transfer/UGATIT_100w/module.py +++ b/hub_module/modules/image/style_transfer/UGATIT_100w/module.py @@ -21,7 +21,7 @@ class UGATIT_100w(Module): self.model_path = os.path.join(self.directory, "UGATIT_100w") # 加载模型 - self.model = Model(self.model_path, use_gpu) + self.model = Model(self.model_path, use_gpu=use_gpu, use_mkldnn=False, combined=False) # 关键点检测函数 def style_transfer( diff --git a/hub_module/modules/image/style_transfer/UGATIT_83w/model.py b/hub_module/modules/image/style_transfer/UGATIT_83w/model.py index f1639493..66db7bba 100644 --- a/hub_module/modules/image/style_transfer/UGATIT_83w/model.py +++ b/hub_module/modules/image/style_transfer/UGATIT_83w/model.py @@ -7,9 +7,9 @@ __all__ = ['Model'] class Model(): # 初始化函数 - def __init__(self, modelpath, use_gpu): + def __init__(self, modelpath, use_gpu=False, use_mkldnn=True, combined=True): # 加载模型预测器 - self.predictor = self.load_model(modelpath, use_gpu) + self.predictor = self.load_model(modelpath, use_gpu, use_mkldnn, combined) # 获取模型的输入输出 self.input_names = self.predictor.get_input_names() @@ -18,24 +18,30 @@ class Model(): self.output_tensor = self.predictor.get_output_tensor(self.output_names[0]) # 模型加载函数 - def load_model(self, modelpath, use_gpu): + def load_model(self, modelpath, use_gpu, use_mkldnn, combined): # 对运行位置进行配置 if use_gpu: try: - places = os.environ["CUDA_VISIBLE_DEVICES"] - places = int(places[0]) - except Exception as e: - print('Error: %s. Please set the environment variables "CUDA_VISIBLE_DEVICES".' % e) + int(os.environ.get('CUDA_VISIBLE_DEVICES')) + except Exception: + print('Error! Unable to use GPU. Please set the environment variables "CUDA_VISIBLE_DEVICES=GPU_id" to use GPU.') use_gpu = False - + # 加载模型参数 - config = AnalysisConfig(modelpath) + if combined: + model = os.path.join(modelpath, "__model__") + params = os.path.join(modelpath, "__params__") + config = AnalysisConfig(model, params) + else: + config = AnalysisConfig(modelpath) # 设置参数 if use_gpu: - config.enable_use_gpu(100, places) + config.enable_use_gpu(100, 0) else: config.disable_gpu() + if use_mkldnn: + config.enable_mkldnn() config.disable_glog_info() config.switch_ir_optim(True) config.enable_memory_optim() diff --git a/hub_module/modules/image/style_transfer/UGATIT_83w/module.py b/hub_module/modules/image/style_transfer/UGATIT_83w/module.py index 7baf4584..26c0d488 100644 --- a/hub_module/modules/image/style_transfer/UGATIT_83w/module.py +++ b/hub_module/modules/image/style_transfer/UGATIT_83w/module.py @@ -21,7 +21,7 @@ class UGATIT_83w(Module): self.model_path = os.path.join(self.directory, "UGATIT_83w") # 加载模型 - self.model = Model(self.model_path, use_gpu) + self.model = Model(self.model_path, use_gpu=use_gpu, use_mkldnn=False, combined=False) # 关键点检测函数 def style_transfer( diff --git a/hub_module/modules/image/style_transfer/UGATIT_92w/model.py b/hub_module/modules/image/style_transfer/UGATIT_92w/model.py index f1639493..66db7bba 100644 --- a/hub_module/modules/image/style_transfer/UGATIT_92w/model.py +++ b/hub_module/modules/image/style_transfer/UGATIT_92w/model.py @@ -7,9 +7,9 @@ __all__ = ['Model'] class Model(): # 初始化函数 - def __init__(self, modelpath, use_gpu): + def __init__(self, modelpath, use_gpu=False, use_mkldnn=True, combined=True): # 加载模型预测器 - self.predictor = self.load_model(modelpath, use_gpu) + self.predictor = self.load_model(modelpath, use_gpu, use_mkldnn, combined) # 获取模型的输入输出 self.input_names = self.predictor.get_input_names() @@ -18,24 +18,30 @@ class Model(): self.output_tensor = self.predictor.get_output_tensor(self.output_names[0]) # 模型加载函数 - def load_model(self, modelpath, use_gpu): + def load_model(self, modelpath, use_gpu, use_mkldnn, combined): # 对运行位置进行配置 if use_gpu: try: - places = os.environ["CUDA_VISIBLE_DEVICES"] - places = int(places[0]) - except Exception as e: - print('Error: %s. Please set the environment variables "CUDA_VISIBLE_DEVICES".' % e) + int(os.environ.get('CUDA_VISIBLE_DEVICES')) + except Exception: + print('Error! Unable to use GPU. Please set the environment variables "CUDA_VISIBLE_DEVICES=GPU_id" to use GPU.') use_gpu = False - + # 加载模型参数 - config = AnalysisConfig(modelpath) + if combined: + model = os.path.join(modelpath, "__model__") + params = os.path.join(modelpath, "__params__") + config = AnalysisConfig(model, params) + else: + config = AnalysisConfig(modelpath) # 设置参数 if use_gpu: - config.enable_use_gpu(100, places) + config.enable_use_gpu(100, 0) else: config.disable_gpu() + if use_mkldnn: + config.enable_mkldnn() config.disable_glog_info() config.switch_ir_optim(True) config.enable_memory_optim() diff --git a/hub_module/modules/image/style_transfer/UGATIT_92w/module.py b/hub_module/modules/image/style_transfer/UGATIT_92w/module.py index b6a8723a..cb5443a0 100644 --- a/hub_module/modules/image/style_transfer/UGATIT_92w/module.py +++ b/hub_module/modules/image/style_transfer/UGATIT_92w/module.py @@ -21,7 +21,7 @@ class UGATIT_92w(Module): self.model_path = os.path.join(self.directory, "UGATIT_92w") # 加载模型 - self.model = Model(self.model_path, use_gpu) + self.model = Model(self.model_path, use_gpu=use_gpu, use_mkldnn=False, combined=False) # 关键点检测函数 def style_transfer( diff --git a/hub_module/modules/image/style_transfer/animegan_v1_hayao_60/model.py b/hub_module/modules/image/style_transfer/animegan_v1_hayao_60/model.py index a72cf8a3..66db7bba 100644 --- a/hub_module/modules/image/style_transfer/animegan_v1_hayao_60/model.py +++ b/hub_module/modules/image/style_transfer/animegan_v1_hayao_60/model.py @@ -7,9 +7,9 @@ __all__ = ['Model'] class Model(): # 初始化函数 - def __init__(self, modelpath, use_gpu): + def __init__(self, modelpath, use_gpu=False, use_mkldnn=True, combined=True): # 加载模型预测器 - self.predictor = self.load_model(modelpath, use_gpu) + self.predictor = self.load_model(modelpath, use_gpu, use_mkldnn, combined) # 获取模型的输入输出 self.input_names = self.predictor.get_input_names() @@ -18,25 +18,30 @@ class Model(): self.output_tensor = self.predictor.get_output_tensor(self.output_names[0]) # 模型加载函数 - def load_model(self, modelpath, use_gpu): + def load_model(self, modelpath, use_gpu, use_mkldnn, combined): # 对运行位置进行配置 if use_gpu: try: - places = os.environ["CUDA_VISIBLE_DEVICES"] - places = int(places[0]) - except Exception as e: - print('Error: %s. Please set the environment variables "CUDA_VISIBLE_DEVICES".' % e) + int(os.environ.get('CUDA_VISIBLE_DEVICES')) + except Exception: + print('Error! Unable to use GPU. Please set the environment variables "CUDA_VISIBLE_DEVICES=GPU_id" to use GPU.') use_gpu = False - + # 加载模型参数 - config = AnalysisConfig(modelpath) + if combined: + model = os.path.join(modelpath, "__model__") + params = os.path.join(modelpath, "__params__") + config = AnalysisConfig(model, params) + else: + config = AnalysisConfig(modelpath) # 设置参数 if use_gpu: - config.enable_use_gpu(100, places) + config.enable_use_gpu(100, 0) else: config.disable_gpu() - config.enable_mkldnn() + if use_mkldnn: + config.enable_mkldnn() config.disable_glog_info() config.switch_ir_optim(True) config.enable_memory_optim() @@ -55,7 +60,8 @@ class Model(): # 遍历输入数据进行预测 for input_data in input_datas: - self.input_tensor.copy_from_cpu(input_data) + inputs = input_data.copy() + self.input_tensor.copy_from_cpu(inputs) self.predictor.zero_copy_run() output = self.output_tensor.copy_to_cpu() outputs.append(output) diff --git a/hub_module/modules/image/style_transfer/animegan_v1_hayao_60/module.py b/hub_module/modules/image/style_transfer/animegan_v1_hayao_60/module.py index 8b77d894..7cc68bd7 100644 --- a/hub_module/modules/image/style_transfer/animegan_v1_hayao_60/module.py +++ b/hub_module/modules/image/style_transfer/animegan_v1_hayao_60/module.py @@ -21,7 +21,7 @@ class Animegan_V1_Hayao_60(Module): self.model_path = os.path.join(self.directory, "animegan_v1_hayao_60") # 加载模型 - self.model = Model(self.model_path, use_gpu) + self.model = Model(self.model_path, use_gpu=use_gpu, use_mkldnn=False, combined=False) # 关键点检测函数 def style_transfer( diff --git a/hub_module/modules/image/style_transfer/animegan_v2_hayao_64/model.py b/hub_module/modules/image/style_transfer/animegan_v2_hayao_64/model.py index a72cf8a3..66db7bba 100644 --- a/hub_module/modules/image/style_transfer/animegan_v2_hayao_64/model.py +++ b/hub_module/modules/image/style_transfer/animegan_v2_hayao_64/model.py @@ -7,9 +7,9 @@ __all__ = ['Model'] class Model(): # 初始化函数 - def __init__(self, modelpath, use_gpu): + def __init__(self, modelpath, use_gpu=False, use_mkldnn=True, combined=True): # 加载模型预测器 - self.predictor = self.load_model(modelpath, use_gpu) + self.predictor = self.load_model(modelpath, use_gpu, use_mkldnn, combined) # 获取模型的输入输出 self.input_names = self.predictor.get_input_names() @@ -18,25 +18,30 @@ class Model(): self.output_tensor = self.predictor.get_output_tensor(self.output_names[0]) # 模型加载函数 - def load_model(self, modelpath, use_gpu): + def load_model(self, modelpath, use_gpu, use_mkldnn, combined): # 对运行位置进行配置 if use_gpu: try: - places = os.environ["CUDA_VISIBLE_DEVICES"] - places = int(places[0]) - except Exception as e: - print('Error: %s. Please set the environment variables "CUDA_VISIBLE_DEVICES".' % e) + int(os.environ.get('CUDA_VISIBLE_DEVICES')) + except Exception: + print('Error! Unable to use GPU. Please set the environment variables "CUDA_VISIBLE_DEVICES=GPU_id" to use GPU.') use_gpu = False - + # 加载模型参数 - config = AnalysisConfig(modelpath) + if combined: + model = os.path.join(modelpath, "__model__") + params = os.path.join(modelpath, "__params__") + config = AnalysisConfig(model, params) + else: + config = AnalysisConfig(modelpath) # 设置参数 if use_gpu: - config.enable_use_gpu(100, places) + config.enable_use_gpu(100, 0) else: config.disable_gpu() - config.enable_mkldnn() + if use_mkldnn: + config.enable_mkldnn() config.disable_glog_info() config.switch_ir_optim(True) config.enable_memory_optim() @@ -55,7 +60,8 @@ class Model(): # 遍历输入数据进行预测 for input_data in input_datas: - self.input_tensor.copy_from_cpu(input_data) + inputs = input_data.copy() + self.input_tensor.copy_from_cpu(inputs) self.predictor.zero_copy_run() output = self.output_tensor.copy_to_cpu() outputs.append(output) diff --git a/hub_module/modules/image/style_transfer/animegan_v2_hayao_64/module.py b/hub_module/modules/image/style_transfer/animegan_v2_hayao_64/module.py index cdb31f67..15e8aa16 100644 --- a/hub_module/modules/image/style_transfer/animegan_v2_hayao_64/module.py +++ b/hub_module/modules/image/style_transfer/animegan_v2_hayao_64/module.py @@ -21,7 +21,7 @@ class Animegan_V2_Hayao_64(Module): self.model_path = os.path.join(self.directory, "animegan_v2_hayao_64") # 加载模型 - self.model = Model(self.model_path, use_gpu) + self.model = Model(self.model_path, use_gpu=use_gpu, use_mkldnn=False, combined=False) # 关键点检测函数 def style_transfer( diff --git a/hub_module/modules/image/style_transfer/animegan_v2_hayao_99/model.py b/hub_module/modules/image/style_transfer/animegan_v2_hayao_99/model.py index a72cf8a3..66db7bba 100644 --- a/hub_module/modules/image/style_transfer/animegan_v2_hayao_99/model.py +++ b/hub_module/modules/image/style_transfer/animegan_v2_hayao_99/model.py @@ -7,9 +7,9 @@ __all__ = ['Model'] class Model(): # 初始化函数 - def __init__(self, modelpath, use_gpu): + def __init__(self, modelpath, use_gpu=False, use_mkldnn=True, combined=True): # 加载模型预测器 - self.predictor = self.load_model(modelpath, use_gpu) + self.predictor = self.load_model(modelpath, use_gpu, use_mkldnn, combined) # 获取模型的输入输出 self.input_names = self.predictor.get_input_names() @@ -18,25 +18,30 @@ class Model(): self.output_tensor = self.predictor.get_output_tensor(self.output_names[0]) # 模型加载函数 - def load_model(self, modelpath, use_gpu): + def load_model(self, modelpath, use_gpu, use_mkldnn, combined): # 对运行位置进行配置 if use_gpu: try: - places = os.environ["CUDA_VISIBLE_DEVICES"] - places = int(places[0]) - except Exception as e: - print('Error: %s. Please set the environment variables "CUDA_VISIBLE_DEVICES".' % e) + int(os.environ.get('CUDA_VISIBLE_DEVICES')) + except Exception: + print('Error! Unable to use GPU. Please set the environment variables "CUDA_VISIBLE_DEVICES=GPU_id" to use GPU.') use_gpu = False - + # 加载模型参数 - config = AnalysisConfig(modelpath) + if combined: + model = os.path.join(modelpath, "__model__") + params = os.path.join(modelpath, "__params__") + config = AnalysisConfig(model, params) + else: + config = AnalysisConfig(modelpath) # 设置参数 if use_gpu: - config.enable_use_gpu(100, places) + config.enable_use_gpu(100, 0) else: config.disable_gpu() - config.enable_mkldnn() + if use_mkldnn: + config.enable_mkldnn() config.disable_glog_info() config.switch_ir_optim(True) config.enable_memory_optim() @@ -55,7 +60,8 @@ class Model(): # 遍历输入数据进行预测 for input_data in input_datas: - self.input_tensor.copy_from_cpu(input_data) + inputs = input_data.copy() + self.input_tensor.copy_from_cpu(inputs) self.predictor.zero_copy_run() output = self.output_tensor.copy_to_cpu() outputs.append(output) diff --git a/hub_module/modules/image/style_transfer/animegan_v2_hayao_99/module.py b/hub_module/modules/image/style_transfer/animegan_v2_hayao_99/module.py index ebb1640e..4a842288 100644 --- a/hub_module/modules/image/style_transfer/animegan_v2_hayao_99/module.py +++ b/hub_module/modules/image/style_transfer/animegan_v2_hayao_99/module.py @@ -21,7 +21,7 @@ class Animegan_V2_Hayao_99(Module): self.model_path = os.path.join(self.directory, "animegan_v2_hayao_99") # 加载模型 - self.model = Model(self.model_path, use_gpu) + self.model = Model(self.model_path, use_gpu=use_gpu, use_mkldnn=False, combined=False) # 关键点检测函数 def style_transfer( diff --git a/hub_module/modules/image/style_transfer/animegan_v2_paprika_54/model.py b/hub_module/modules/image/style_transfer/animegan_v2_paprika_54/model.py index a72cf8a3..66db7bba 100644 --- a/hub_module/modules/image/style_transfer/animegan_v2_paprika_54/model.py +++ b/hub_module/modules/image/style_transfer/animegan_v2_paprika_54/model.py @@ -7,9 +7,9 @@ __all__ = ['Model'] class Model(): # 初始化函数 - def __init__(self, modelpath, use_gpu): + def __init__(self, modelpath, use_gpu=False, use_mkldnn=True, combined=True): # 加载模型预测器 - self.predictor = self.load_model(modelpath, use_gpu) + self.predictor = self.load_model(modelpath, use_gpu, use_mkldnn, combined) # 获取模型的输入输出 self.input_names = self.predictor.get_input_names() @@ -18,25 +18,30 @@ class Model(): self.output_tensor = self.predictor.get_output_tensor(self.output_names[0]) # 模型加载函数 - def load_model(self, modelpath, use_gpu): + def load_model(self, modelpath, use_gpu, use_mkldnn, combined): # 对运行位置进行配置 if use_gpu: try: - places = os.environ["CUDA_VISIBLE_DEVICES"] - places = int(places[0]) - except Exception as e: - print('Error: %s. Please set the environment variables "CUDA_VISIBLE_DEVICES".' % e) + int(os.environ.get('CUDA_VISIBLE_DEVICES')) + except Exception: + print('Error! Unable to use GPU. Please set the environment variables "CUDA_VISIBLE_DEVICES=GPU_id" to use GPU.') use_gpu = False - + # 加载模型参数 - config = AnalysisConfig(modelpath) + if combined: + model = os.path.join(modelpath, "__model__") + params = os.path.join(modelpath, "__params__") + config = AnalysisConfig(model, params) + else: + config = AnalysisConfig(modelpath) # 设置参数 if use_gpu: - config.enable_use_gpu(100, places) + config.enable_use_gpu(100, 0) else: config.disable_gpu() - config.enable_mkldnn() + if use_mkldnn: + config.enable_mkldnn() config.disable_glog_info() config.switch_ir_optim(True) config.enable_memory_optim() @@ -55,7 +60,8 @@ class Model(): # 遍历输入数据进行预测 for input_data in input_datas: - self.input_tensor.copy_from_cpu(input_data) + inputs = input_data.copy() + self.input_tensor.copy_from_cpu(inputs) self.predictor.zero_copy_run() output = self.output_tensor.copy_to_cpu() outputs.append(output) diff --git a/hub_module/modules/image/style_transfer/animegan_v2_paprika_54/module.py b/hub_module/modules/image/style_transfer/animegan_v2_paprika_54/module.py index 4631c281..c689126a 100644 --- a/hub_module/modules/image/style_transfer/animegan_v2_paprika_54/module.py +++ b/hub_module/modules/image/style_transfer/animegan_v2_paprika_54/module.py @@ -21,7 +21,7 @@ class Animegan_V2_Paprika_54(Module): self.model_path = os.path.join(self.directory, "animegan_v2_paprika_54") # 加载模型 - self.model = Model(self.model_path, use_gpu) + self.model = Model(self.model_path, use_gpu=use_gpu, use_mkldnn=False, combined=False) # 关键点检测函数 def style_transfer( diff --git a/hub_module/modules/image/style_transfer/animegan_v2_paprika_74/model.py b/hub_module/modules/image/style_transfer/animegan_v2_paprika_74/model.py index a72cf8a3..66db7bba 100644 --- a/hub_module/modules/image/style_transfer/animegan_v2_paprika_74/model.py +++ b/hub_module/modules/image/style_transfer/animegan_v2_paprika_74/model.py @@ -7,9 +7,9 @@ __all__ = ['Model'] class Model(): # 初始化函数 - def __init__(self, modelpath, use_gpu): + def __init__(self, modelpath, use_gpu=False, use_mkldnn=True, combined=True): # 加载模型预测器 - self.predictor = self.load_model(modelpath, use_gpu) + self.predictor = self.load_model(modelpath, use_gpu, use_mkldnn, combined) # 获取模型的输入输出 self.input_names = self.predictor.get_input_names() @@ -18,25 +18,30 @@ class Model(): self.output_tensor = self.predictor.get_output_tensor(self.output_names[0]) # 模型加载函数 - def load_model(self, modelpath, use_gpu): + def load_model(self, modelpath, use_gpu, use_mkldnn, combined): # 对运行位置进行配置 if use_gpu: try: - places = os.environ["CUDA_VISIBLE_DEVICES"] - places = int(places[0]) - except Exception as e: - print('Error: %s. Please set the environment variables "CUDA_VISIBLE_DEVICES".' % e) + int(os.environ.get('CUDA_VISIBLE_DEVICES')) + except Exception: + print('Error! Unable to use GPU. Please set the environment variables "CUDA_VISIBLE_DEVICES=GPU_id" to use GPU.') use_gpu = False - + # 加载模型参数 - config = AnalysisConfig(modelpath) + if combined: + model = os.path.join(modelpath, "__model__") + params = os.path.join(modelpath, "__params__") + config = AnalysisConfig(model, params) + else: + config = AnalysisConfig(modelpath) # 设置参数 if use_gpu: - config.enable_use_gpu(100, places) + config.enable_use_gpu(100, 0) else: config.disable_gpu() - config.enable_mkldnn() + if use_mkldnn: + config.enable_mkldnn() config.disable_glog_info() config.switch_ir_optim(True) config.enable_memory_optim() @@ -55,7 +60,8 @@ class Model(): # 遍历输入数据进行预测 for input_data in input_datas: - self.input_tensor.copy_from_cpu(input_data) + inputs = input_data.copy() + self.input_tensor.copy_from_cpu(inputs) self.predictor.zero_copy_run() output = self.output_tensor.copy_to_cpu() outputs.append(output) diff --git a/hub_module/modules/image/style_transfer/animegan_v2_paprika_74/module.py b/hub_module/modules/image/style_transfer/animegan_v2_paprika_74/module.py index 7d54fafa..65389423 100644 --- a/hub_module/modules/image/style_transfer/animegan_v2_paprika_74/module.py +++ b/hub_module/modules/image/style_transfer/animegan_v2_paprika_74/module.py @@ -21,7 +21,7 @@ class Animegan_V2_Paprika_74(Module): self.model_path = os.path.join(self.directory, "animegan_v2_paprika_74") # 加载模型 - self.model = Model(self.model_path, use_gpu) + self.model = Model(self.model_path, use_gpu=use_gpu, use_mkldnn=False, combined=False) # 关键点检测函数 def style_transfer( diff --git a/hub_module/modules/image/style_transfer/animegan_v2_paprika_97/model.py b/hub_module/modules/image/style_transfer/animegan_v2_paprika_97/model.py index a72cf8a3..66db7bba 100644 --- a/hub_module/modules/image/style_transfer/animegan_v2_paprika_97/model.py +++ b/hub_module/modules/image/style_transfer/animegan_v2_paprika_97/model.py @@ -7,9 +7,9 @@ __all__ = ['Model'] class Model(): # 初始化函数 - def __init__(self, modelpath, use_gpu): + def __init__(self, modelpath, use_gpu=False, use_mkldnn=True, combined=True): # 加载模型预测器 - self.predictor = self.load_model(modelpath, use_gpu) + self.predictor = self.load_model(modelpath, use_gpu, use_mkldnn, combined) # 获取模型的输入输出 self.input_names = self.predictor.get_input_names() @@ -18,25 +18,30 @@ class Model(): self.output_tensor = self.predictor.get_output_tensor(self.output_names[0]) # 模型加载函数 - def load_model(self, modelpath, use_gpu): + def load_model(self, modelpath, use_gpu, use_mkldnn, combined): # 对运行位置进行配置 if use_gpu: try: - places = os.environ["CUDA_VISIBLE_DEVICES"] - places = int(places[0]) - except Exception as e: - print('Error: %s. Please set the environment variables "CUDA_VISIBLE_DEVICES".' % e) + int(os.environ.get('CUDA_VISIBLE_DEVICES')) + except Exception: + print('Error! Unable to use GPU. Please set the environment variables "CUDA_VISIBLE_DEVICES=GPU_id" to use GPU.') use_gpu = False - + # 加载模型参数 - config = AnalysisConfig(modelpath) + if combined: + model = os.path.join(modelpath, "__model__") + params = os.path.join(modelpath, "__params__") + config = AnalysisConfig(model, params) + else: + config = AnalysisConfig(modelpath) # 设置参数 if use_gpu: - config.enable_use_gpu(100, places) + config.enable_use_gpu(100, 0) else: config.disable_gpu() - config.enable_mkldnn() + if use_mkldnn: + config.enable_mkldnn() config.disable_glog_info() config.switch_ir_optim(True) config.enable_memory_optim() @@ -55,7 +60,8 @@ class Model(): # 遍历输入数据进行预测 for input_data in input_datas: - self.input_tensor.copy_from_cpu(input_data) + inputs = input_data.copy() + self.input_tensor.copy_from_cpu(inputs) self.predictor.zero_copy_run() output = self.output_tensor.copy_to_cpu() outputs.append(output) diff --git a/hub_module/modules/image/style_transfer/animegan_v2_paprika_97/module.py b/hub_module/modules/image/style_transfer/animegan_v2_paprika_97/module.py index c57d7172..0fd91beb 100644 --- a/hub_module/modules/image/style_transfer/animegan_v2_paprika_97/module.py +++ b/hub_module/modules/image/style_transfer/animegan_v2_paprika_97/module.py @@ -21,7 +21,7 @@ class Animegan_V2_Paprika_97(Module): self.model_path = os.path.join(self.directory, "animegan_v2_paprika_97") # 加载模型 - self.model = Model(self.model_path, use_gpu) + self.model = Model(self.model_path, use_gpu=use_gpu, use_mkldnn=False, combined=False) # 关键点检测函数 def style_transfer( diff --git a/hub_module/modules/image/style_transfer/animegan_v2_paprika_98/model.py b/hub_module/modules/image/style_transfer/animegan_v2_paprika_98/model.py index a72cf8a3..66db7bba 100644 --- a/hub_module/modules/image/style_transfer/animegan_v2_paprika_98/model.py +++ b/hub_module/modules/image/style_transfer/animegan_v2_paprika_98/model.py @@ -7,9 +7,9 @@ __all__ = ['Model'] class Model(): # 初始化函数 - def __init__(self, modelpath, use_gpu): + def __init__(self, modelpath, use_gpu=False, use_mkldnn=True, combined=True): # 加载模型预测器 - self.predictor = self.load_model(modelpath, use_gpu) + self.predictor = self.load_model(modelpath, use_gpu, use_mkldnn, combined) # 获取模型的输入输出 self.input_names = self.predictor.get_input_names() @@ -18,25 +18,30 @@ class Model(): self.output_tensor = self.predictor.get_output_tensor(self.output_names[0]) # 模型加载函数 - def load_model(self, modelpath, use_gpu): + def load_model(self, modelpath, use_gpu, use_mkldnn, combined): # 对运行位置进行配置 if use_gpu: try: - places = os.environ["CUDA_VISIBLE_DEVICES"] - places = int(places[0]) - except Exception as e: - print('Error: %s. Please set the environment variables "CUDA_VISIBLE_DEVICES".' % e) + int(os.environ.get('CUDA_VISIBLE_DEVICES')) + except Exception: + print('Error! Unable to use GPU. Please set the environment variables "CUDA_VISIBLE_DEVICES=GPU_id" to use GPU.') use_gpu = False - + # 加载模型参数 - config = AnalysisConfig(modelpath) + if combined: + model = os.path.join(modelpath, "__model__") + params = os.path.join(modelpath, "__params__") + config = AnalysisConfig(model, params) + else: + config = AnalysisConfig(modelpath) # 设置参数 if use_gpu: - config.enable_use_gpu(100, places) + config.enable_use_gpu(100, 0) else: config.disable_gpu() - config.enable_mkldnn() + if use_mkldnn: + config.enable_mkldnn() config.disable_glog_info() config.switch_ir_optim(True) config.enable_memory_optim() @@ -55,7 +60,8 @@ class Model(): # 遍历输入数据进行预测 for input_data in input_datas: - self.input_tensor.copy_from_cpu(input_data) + inputs = input_data.copy() + self.input_tensor.copy_from_cpu(inputs) self.predictor.zero_copy_run() output = self.output_tensor.copy_to_cpu() outputs.append(output) diff --git a/hub_module/modules/image/style_transfer/animegan_v2_paprika_98/module.py b/hub_module/modules/image/style_transfer/animegan_v2_paprika_98/module.py index 6daab807..d040ca42 100644 --- a/hub_module/modules/image/style_transfer/animegan_v2_paprika_98/module.py +++ b/hub_module/modules/image/style_transfer/animegan_v2_paprika_98/module.py @@ -21,7 +21,7 @@ class Animegan_V2_Paprika_98(Module): self.model_path = os.path.join(self.directory, "animegan_v2_paprika_98") # 加载模型 - self.model = Model(self.model_path, use_gpu) + self.model = Model(self.model_path, use_gpu=use_gpu, use_mkldnn=False, combined=False) # 关键点检测函数 def style_transfer( diff --git a/hub_module/modules/image/style_transfer/animegan_v2_shinkai_33/model.py b/hub_module/modules/image/style_transfer/animegan_v2_shinkai_33/model.py index a72cf8a3..66db7bba 100644 --- a/hub_module/modules/image/style_transfer/animegan_v2_shinkai_33/model.py +++ b/hub_module/modules/image/style_transfer/animegan_v2_shinkai_33/model.py @@ -7,9 +7,9 @@ __all__ = ['Model'] class Model(): # 初始化函数 - def __init__(self, modelpath, use_gpu): + def __init__(self, modelpath, use_gpu=False, use_mkldnn=True, combined=True): # 加载模型预测器 - self.predictor = self.load_model(modelpath, use_gpu) + self.predictor = self.load_model(modelpath, use_gpu, use_mkldnn, combined) # 获取模型的输入输出 self.input_names = self.predictor.get_input_names() @@ -18,25 +18,30 @@ class Model(): self.output_tensor = self.predictor.get_output_tensor(self.output_names[0]) # 模型加载函数 - def load_model(self, modelpath, use_gpu): + def load_model(self, modelpath, use_gpu, use_mkldnn, combined): # 对运行位置进行配置 if use_gpu: try: - places = os.environ["CUDA_VISIBLE_DEVICES"] - places = int(places[0]) - except Exception as e: - print('Error: %s. Please set the environment variables "CUDA_VISIBLE_DEVICES".' % e) + int(os.environ.get('CUDA_VISIBLE_DEVICES')) + except Exception: + print('Error! Unable to use GPU. Please set the environment variables "CUDA_VISIBLE_DEVICES=GPU_id" to use GPU.') use_gpu = False - + # 加载模型参数 - config = AnalysisConfig(modelpath) + if combined: + model = os.path.join(modelpath, "__model__") + params = os.path.join(modelpath, "__params__") + config = AnalysisConfig(model, params) + else: + config = AnalysisConfig(modelpath) # 设置参数 if use_gpu: - config.enable_use_gpu(100, places) + config.enable_use_gpu(100, 0) else: config.disable_gpu() - config.enable_mkldnn() + if use_mkldnn: + config.enable_mkldnn() config.disable_glog_info() config.switch_ir_optim(True) config.enable_memory_optim() @@ -55,7 +60,8 @@ class Model(): # 遍历输入数据进行预测 for input_data in input_datas: - self.input_tensor.copy_from_cpu(input_data) + inputs = input_data.copy() + self.input_tensor.copy_from_cpu(inputs) self.predictor.zero_copy_run() output = self.output_tensor.copy_to_cpu() outputs.append(output) diff --git a/hub_module/modules/image/style_transfer/animegan_v2_shinkai_33/module.py b/hub_module/modules/image/style_transfer/animegan_v2_shinkai_33/module.py index cc0612f2..ab016ba8 100644 --- a/hub_module/modules/image/style_transfer/animegan_v2_shinkai_33/module.py +++ b/hub_module/modules/image/style_transfer/animegan_v2_shinkai_33/module.py @@ -21,7 +21,7 @@ class Animegan_V2_Shinkai_33(Module): self.model_path = os.path.join(self.directory, "animegan_v2_shinkai_33") # 加载模型 - self.model = Model(self.model_path, use_gpu) + self.model = Model(self.model_path, use_gpu=use_gpu, use_mkldnn=False, combined=False) # 关键点检测函数 def style_transfer( diff --git a/hub_module/modules/image/style_transfer/animegan_v2_shinkai_53/model.py b/hub_module/modules/image/style_transfer/animegan_v2_shinkai_53/model.py index a72cf8a3..66db7bba 100644 --- a/hub_module/modules/image/style_transfer/animegan_v2_shinkai_53/model.py +++ b/hub_module/modules/image/style_transfer/animegan_v2_shinkai_53/model.py @@ -7,9 +7,9 @@ __all__ = ['Model'] class Model(): # 初始化函数 - def __init__(self, modelpath, use_gpu): + def __init__(self, modelpath, use_gpu=False, use_mkldnn=True, combined=True): # 加载模型预测器 - self.predictor = self.load_model(modelpath, use_gpu) + self.predictor = self.load_model(modelpath, use_gpu, use_mkldnn, combined) # 获取模型的输入输出 self.input_names = self.predictor.get_input_names() @@ -18,25 +18,30 @@ class Model(): self.output_tensor = self.predictor.get_output_tensor(self.output_names[0]) # 模型加载函数 - def load_model(self, modelpath, use_gpu): + def load_model(self, modelpath, use_gpu, use_mkldnn, combined): # 对运行位置进行配置 if use_gpu: try: - places = os.environ["CUDA_VISIBLE_DEVICES"] - places = int(places[0]) - except Exception as e: - print('Error: %s. Please set the environment variables "CUDA_VISIBLE_DEVICES".' % e) + int(os.environ.get('CUDA_VISIBLE_DEVICES')) + except Exception: + print('Error! Unable to use GPU. Please set the environment variables "CUDA_VISIBLE_DEVICES=GPU_id" to use GPU.') use_gpu = False - + # 加载模型参数 - config = AnalysisConfig(modelpath) + if combined: + model = os.path.join(modelpath, "__model__") + params = os.path.join(modelpath, "__params__") + config = AnalysisConfig(model, params) + else: + config = AnalysisConfig(modelpath) # 设置参数 if use_gpu: - config.enable_use_gpu(100, places) + config.enable_use_gpu(100, 0) else: config.disable_gpu() - config.enable_mkldnn() + if use_mkldnn: + config.enable_mkldnn() config.disable_glog_info() config.switch_ir_optim(True) config.enable_memory_optim() @@ -55,7 +60,8 @@ class Model(): # 遍历输入数据进行预测 for input_data in input_datas: - self.input_tensor.copy_from_cpu(input_data) + inputs = input_data.copy() + self.input_tensor.copy_from_cpu(inputs) self.predictor.zero_copy_run() output = self.output_tensor.copy_to_cpu() outputs.append(output) diff --git a/hub_module/modules/image/style_transfer/animegan_v2_shinkai_53/module.py b/hub_module/modules/image/style_transfer/animegan_v2_shinkai_53/module.py index d733092d..c16775e5 100644 --- a/hub_module/modules/image/style_transfer/animegan_v2_shinkai_53/module.py +++ b/hub_module/modules/image/style_transfer/animegan_v2_shinkai_53/module.py @@ -21,7 +21,7 @@ class Animegan_V2_Shinkai_53(Module): self.model_path = os.path.join(self.directory, "animegan_v2_shinkai_53") # 加载模型 - self.model = Model(self.model_path, use_gpu) + self.model = Model(self.model_path, use_gpu=use_gpu, use_mkldnn=False, combined=False) # 关键点检测函数 def style_transfer( -- GitLab