From 6963b409a1ddf61f4f7d531a5e38626580317c51 Mon Sep 17 00:00:00 2001 From: trhoangdung Date: Wed, 19 Aug 2020 22:07:00 -0500 Subject: [PATCH] fix minor error --- code/nnv/engine/nn/cnn/CNN.m | 4 +-- code/nnv/engine/nn/funcs/LogSig.m | 33 ++++++++---------------- code/nnv/engine/nn/layers/SigmoidLayer.m | 5 ++-- code/nnv/engine/nncs/LinearODE.m | 6 ++--- 4 files changed, 17 insertions(+), 31 deletions(-) diff --git a/code/nnv/engine/nn/cnn/CNN.m b/code/nnv/engine/nn/cnn/CNN.m index 4171cd269f..5e0893b431 100644 --- a/code/nnv/engine/nn/cnn/CNN.m +++ b/code/nnv/engine/nn/cnn/CNN.m @@ -195,9 +195,7 @@ function start_pool(obj) error('Invalid number of input arguments, the number should be 1, 2, 3, 4, 5, or 6'); end - - - + if obj.numCores > 1 obj.start_pool; obj.reachOption = 'parallel'; diff --git a/code/nnv/engine/nn/funcs/LogSig.m b/code/nnv/engine/nn/funcs/LogSig.m index 981b501b75..4ba3f91554 100644 --- a/code/nnv/engine/nn/funcs/LogSig.m +++ b/code/nnv/engine/nn/funcs/LogSig.m @@ -852,7 +852,7 @@ if ~isa(I, 'Star') error('Input is not a star'); end - if relaxFactor < 0 || relaxFactor > 1 + if (relaxFactor < 0) || (relaxFactor > 1) error('Invalid relax factor'); end @@ -1302,56 +1302,45 @@ % 7/16/2020: add lp_solver option switch nargin - case 6 - I = varargin{1}; - method = varargin{2}; - option = varargin{3}; - relaxFactor = varargin{4}; % used for aprox-star only - dis_opt = varargin{5}; % display option - lp_solver = varargin{6}; % lp solver option case 5 I = varargin{1}; method = varargin{2}; - option = varargin{3}; - relaxFactor = varargin{4}; % used for aprox-star only - dis_opt = varargin{5}; % display option - lp_solver = 'linprog'; + relaxFactor = varargin{3}; % used for aprox-star only + dis_opt = varargin{4}; % display option + lp_solver = varargin{5}; % lp solver option case 4 I = varargin{1}; method = varargin{2}; - option = varargin{3}; - relaxFactor = varargin{4}; % for relaxed approx-star method - dis_opt = []; + relaxFactor = varargin{3}; % used for aprox-star only + dis_opt = varargin{4}; % display option lp_solver = 'linprog'; - case 3 I = varargin{1}; method = varargin{2}; - option = varargin{3}; - relaxFactor = 0; % for relaxed approx-star method + relaxFactor = varargin{3}; % for relaxed approx-star method dis_opt = []; lp_solver = 'linprog'; + case 2 I = varargin{1}; method = varargin{2}; - option = []; relaxFactor = 0; % for relaxed approx-star method dis_opt = []; lp_solver = 'linprog'; + case 1 I = varargin{1}; method = 'approx-star'; - option = []; relaxFactor = 0; % for relaxed approx-star method dis_opt = []; lp_solver = 'linprog'; otherwise - error('Invalid number of input arguments (should be 1, 2, 3, 4, 5, or 6)'); + error('Invalid number of input arguments (should be 1, 2, 3, 4, or 5)'); end if strcmp(method, 'approx-star') || strcmp(method, 'approx-star-no-split') || strcmp(method, 'approx-star-split') - + R = LogSig.reach_star_approx(I, method, relaxFactor, dis_opt, lp_solver); elseif strcmp(method, 'approx-zono') % over-approximate analysis using zonotope diff --git a/code/nnv/engine/nn/layers/SigmoidLayer.m b/code/nnv/engine/nn/layers/SigmoidLayer.m index 1baeb1cd8c..75adc35d53 100644 --- a/code/nnv/engine/nn/layers/SigmoidLayer.m +++ b/code/nnv/engine/nn/layers/SigmoidLayer.m @@ -105,7 +105,6 @@ error('input is not an ImageStar'); end - h = in_image.height; w = in_image.width; c = in_image.numChannel; @@ -136,7 +135,7 @@ images = []; n = length(in_images); - + if strcmp(option, 'parallel') parfor i=1:n images = [images obj.reach_star_single_input(in_images(i), method, relaxFactor, dis_opt, lp_solver)]; @@ -260,7 +259,7 @@ otherwise error('Invalid number of input arguments (should be 2,3,4,5 or 6)'); end - + if strcmp(method, 'approx-star') || strcmp(method, 'abs-dom') images = obj.reach_star_multipleInputs(in_images, method, option, relaxFactor, dis_opt, lp_solver); elseif strcmp(method, 'approx-zono') diff --git a/code/nnv/engine/nncs/LinearODE.m b/code/nnv/engine/nncs/LinearODE.m index 8107373c75..7290ecbb8e 100644 --- a/code/nnv/engine/nncs/LinearODE.m +++ b/code/nnv/engine/nncs/LinearODE.m @@ -508,7 +508,7 @@ for j=1:m V = [V Z{1, j}(:, i)]; end - R = [R Star(V, X0.C, X0.d)]; % reachable set + R = [R Star(V, X0.C, X0.d, X0.predicate_lb, X0.predicate_ub)]; % reachable set end end @@ -543,7 +543,7 @@ for j=1:k V = [V Z{1, j}(:, i)]; end - R = [R Star(V, X0.C, X0.d)]; % reachable set + R = [R Star(V, X0.C, X0.d, X0.predicate_lb, X0.predicate_ub)]; % reachable set end end @@ -577,7 +577,7 @@ for j=1:m V = [V Z{1, j}(:, i)]; end - R = [R Star(V, X0.C, X0.d)]; % reachable set + R = [R Star(V, X0.C, X0.d, X0.predicate_lb, X0.predicate_ub)]; % reachable set end end