From 43046bfa6d2179657203ebeb462f390e5e4975a4 Mon Sep 17 00:00:00 2001 From: seven Date: Wed, 3 Jun 2020 12:14:34 +0800 Subject: [PATCH] modify save file name --- .../core/interpretation_algorithms.py | 35 +++++-------------- paddlex/interpret/visualize.py | 4 +-- 2 files changed, 10 insertions(+), 29 deletions(-) diff --git a/paddlex/interpret/core/interpretation_algorithms.py b/paddlex/interpret/core/interpretation_algorithms.py index 476ece1..a54f466 100644 --- a/paddlex/interpret/core/interpretation_algorithms.py +++ b/paddlex/interpret/core/interpretation_algorithms.py @@ -107,7 +107,6 @@ class CAM(object): axes[1].set_title("CAM") if save_outdir is not None: - os.makedirs(save_outdir, exist_ok=True) save_fig(data_, save_outdir, 'cam') if visualization: @@ -219,7 +218,7 @@ class LIME(object): self.lime_interpreter, l, w) temp, mask = self.lime_interpreter.get_image_and_mask( l, - positive_only=False, + positive_only=True, hide_rest=False, num_features=num_to_show) axes[ncols + i].imshow(mark_boundaries(temp, mask)) @@ -227,7 +226,6 @@ class LIME(object): "label {}, first {} superpixels".format(ln, num_to_show)) if save_outdir is not None: - os.makedirs(save_outdir, exist_ok=True) save_fig(data_, save_outdir, 'lime', self.num_samples) if visualization: @@ -412,7 +410,6 @@ class NormLIMEStandard(object): self._lime.lime_interpreter.local_weights = lime_weights if save_outdir is not None: - os.makedirs(save_outdir, exist_ok=True) save_fig(data_, save_outdir, 'normlime', self.num_samples) if visualization: @@ -596,7 +593,6 @@ class NormLIME(object): self._lime.lime_interpreter.local_weights = lime_weights if save_outdir is not None: - os.makedirs(save_outdir, exist_ok=True) save_fig(data_, save_outdir, 'normlime', self.num_samples) if visualization: @@ -674,26 +670,11 @@ def get_cam(image_show, def save_fig(data_, save_outdir, algorithm_name, num_samples=3000): import matplotlib.pyplot as plt - if isinstance(data_, str): - if algorithm_name == 'cam': - f_out = "{}_{}.png".format(algorithm_name, data_.split('/')[-1]) - else: - f_out = "{}_{}_s{}.png".format(algorithm_name, - data_.split('/')[-1], num_samples) - plt.savefig(os.path.join(save_outdir, f_out)) + if algorithm_name == 'cam': + f_out = "{}_{}.png".format(algorithm_name, data_.split('/')[-1]) else: - n = 0 - if algorithm_name == 'cam': - f_out = 'cam-{}.png'.format(n) - else: - f_out = '{}_s{}-{}.png'.format(algorithm_name, num_samples, n) - while os.path.exists(os.path.join(save_outdir, f_out)): - n += 1 - if algorithm_name == 'cam': - f_out = 'cam-{}.png'.format(n) - else: - f_out = '{}_s{}-{}.png'.format(algorithm_name, num_samples, n) - continue - plt.savefig(os.path.join(save_outdir, f_out)) - logging.info('The image of intrepretation result save in {}'.format( - os.path.join(save_outdir, f_out))) + f_out = "{}_{}_s{}.png".format(save_outdir, algorithm_name, + num_samples) + + plt.savefig(f_out) + logging.info('The image of intrepretation result save in {}'.format(f_out)) diff --git a/paddlex/interpret/visualize.py b/paddlex/interpret/visualize.py index d6785c6..f015840 100644 --- a/paddlex/interpret/visualize.py +++ b/paddlex/interpret/visualize.py @@ -58,7 +58,7 @@ def lime(img_file, model, num_samples=3000, batch_size=50, save_dir='./'): interpreter = get_lime_interpreter( img, model, num_samples=num_samples, batch_size=batch_size) img_name = osp.splitext(osp.split(img_file)[-1])[0] - interpreter.interpret(img, save_dir=save_dir) + interpreter.interpret(img, save_dir=osp.join(save_dir, img_name)) def normlime(img_file, @@ -111,7 +111,7 @@ def normlime(img_file, save_dir=save_dir, normlime_weights_file=normlime_weights_file) img_name = osp.splitext(osp.split(img_file)[-1])[0] - interpreter.interpret(img, save_dir=save_dir) + interpreter.interpret(img, save_dir=osp.join(save_dir, img_name)) def get_lime_interpreter(img, model, num_samples=3000, batch_size=50): -- GitLab