Skip to content

Commit 289a58e

Browse files
authored
Update readme.md
1 parent 122203a commit 289a58e

File tree

1 file changed

+16
-16
lines changed
  • code/nnv/examples/NNV2.0/Submission/CAV2023

1 file changed

+16
-16
lines changed

code/nnv/examples/NNV2.0/Submission/CAV2023/readme.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ The paper contains the following computational elements:
2424
- RNNs (Section 4.3, Fig. 2(a))
2525
- Semantic Segmentation (Section 4.4, Fig. 3)
2626

27-
To facilitate the review process, we also provide a way to reproduce a subset of the results, which includes Neural ODEs, RNNs and Semantic Segmentation results.
27+
To facilitate the review process, we also provide a way to reproduce a subset of the results, which includes Neural ODEs, RNNs and Semantic Segmentation results, as well as a smoke test which should only take a few minutes.
2828

2929

3030
### System Requirements
@@ -41,19 +41,21 @@ Window 10 or Linux, but either should work (CodeOcean described below is run on
4141

4242
#### c. Dependencies
4343

44-
Matlab 2022b
45-
46-
Matlab toolboxes and support packages listed here: https://github.com/verivital/nnv#installation
44+
- Matlab 2022b
45+
- Matlab toolboxes and support packages listed here: https://github.com/verivital/nnv#installation
4746

4847
#### d. Hardware
4948

5049
The computer needs > 30 GB RAM. Note that a computer with less RAM may not be able to reproduce all results in the paper, which is part of why the CodeOcean set up is recommended as it has 120GB RAM.
5150

5251
### Understanding the results
5352

54-
First, we want to acknowledge an error (human error) found after we submitted the manuscript. In Table 2, there is a mismatch in the number of UNSAT instances of property 5 using the relax 25% method. While the manuscript says there are __5__ UNSAT instances, the actual number of UNSAT instances is __6__.
53+
First, we want to acknowledge a mistake (human error) found after we submitted the manuscript. In Table 2, there is a mismatch in the number of UNSAT instances of property 5 using the relax 25% method. While the manuscript says there are __5__ UNSAT instances, the actual number of UNSAT instances is __6__. We apologize for this mistake, and we will update the final version of the manuscript (if the paper gets accepted), but this error does not have a large impact in the paper. The goal of Table 2 is to showcase the different Star methods available in NNV, and show:
54+
1) For more precise methods we can verify a larger amount of instances.
55+
2) This comes at a cost as more precise methods are also more expensive (time consuming) to compute.
56+
5557

56-
When reproducing the results of the paper, the following files are generated:
58+
Now we are ready to look into the generated results. When reproducing the results of the paper (https://github.com/verivital/nnv/blob/master/code/nnv/examples/NNV2.0/Submission/CAV2023/run_cav23.m), the following files are generated:
5759
- `Table2.txt` - Section 4.1, Table 2 (Verification of ACAS Xu properties 3 and 4)
5860
- `Table3.txt` - Section 4.1, Table 3 (Verification results of the RL, tllverify and oval21 benchmarks)
5961
- `results_4.2-4.4.txt` - Verification and computation time results of section 4.2, 4.3 and 4.4
@@ -71,7 +73,7 @@ In the generated results files, there are two main categories
7173
1) Verification / Reachability results (i.e. _acc_nl.pdf_)
7274
2) Computation times (i.e. _rnn_verification_time.pdf_)
7375

74-
For the first category, the reachability plots as well as the number of SAT and UNSAT properties verified are reproducible, with one expection mentioned above.
76+
For the first category, the reachability plots as well as the number of SAT and UNSAT properties verified are reproducible, with the one expection mentioned above.
7577

7678
On the other hand, or the second one (_computation times_), there are a variety of reasons why these number may differ from those in the paper:
7779
- Hardware
@@ -111,9 +113,9 @@ To re-run all computations and reproduce the results, one selects "Reproducible
111113

112114
We next explain what this "Reproducible Run" process does. Note that while we have set it up with sufficient runtime to re-run a subset of the results (all except Tables 2 and 3), we suggest reviewers look at the prior runs and logs just discussed due to the long runtime and limited computational time available on CodeOcean. If there are any issues with this or reviewers experience runtime limitations, please let us know and we will try to have the quotas increased.
113115

114-
To reproduce a subset of the results (Sections 4.2 to 4.4), which reduces the computation time from ~14-15 hours to ~2 hours one can replace (uncomment) the `%RE_cav23_short` call in line 18 of `run_codeocean.m` with `RE_cav23_short`, and replace the `run_cav23.m` call in line 19 of `run_codeocean.m` with `%run_cav23`. Then, select "Reproducible Run". Once it is complete, all the results __except for__ Table2.txt and Table3.txt will be generated. The results can be accessed under the _logs_ tab in the last executed run.
116+
To reproduce a subset of the results (Sections 4.2 to 4.4), which reduces the computation time from ~14-15 hours to ~2 hours one can replace (uncomment) the `%RE_cav23_short` call in line 18 of `run_codeocean.m` with `RE_cav23_short`, and replace the `run_cav23` call in line 19 of `run_codeocean.m` with `%run_cav23`. Then, select "Reproducible Run". Once it is complete, all the results __except for__ Table2.txt and Table3.txt will be generated. The results can be accessed under the _logs_ tab in the last executed run.
115117

116-
As the smoke test, after duplicating the capsule to make it editable, we would recommend modifying the `run_codeocean.m` script to just run only two experiments instead of the full `run_cav23`. This can be done by replacing (commenting out) the `run_cav23.m` call in line 19 of `run_codeocean.m` with `%run_cav23`, and adding the following lines to the script (lines 20-24):
118+
As the smoke test, after duplicating the capsule to make it editable, we would recommend modifying the `run_codeocean.m` script to run only two experiments instead of the full `run_cav23`. This can be done by replacing (commenting out) the `run_cav23` call in line 19 of `run_codeocean.m` with `%run_cav23`, and adding the following lines to the script (lines 20-24):
117119

118120
```
119121
cd NNV_vs_MATLAB/rl_benchmarks
@@ -127,14 +129,14 @@ Then, select "Reproducible Run". This should only take a few minutes (after the
127129

128130
`fpa.pdf` - Fig. 2 (c) (Neural ODE FPA)
129131

130-
All results are generated into /results/logs/ directory and can be accessed once the `Reproducible Run` is finished, in the right column of the capsule.
132+
For every CodeOcean run, all results are generated into /results/logs/ directory and can be accessed once the `Reproducible Run` is finished, in the right column of the capsule under the __logs__ tab.
131133

132134
For more information about the results, please see: https://github.com/verivital/nnv/edit/master/code/nnv/examples/NNV2.0/Submission/CAV2023/readme.md#understanding-the-results .
133135

134136

135137
### Option 2: Manual / Standalone Installation
136138

137-
This setup is if you want to delve more into NNV without relying on CodeOcean, but requires a Matlab installation and license. For the first three steps, more details are available here:
139+
This setup is if you want to delve more into NNV without relying on CodeOcean, but requires a Matlab installation and license. For the first steps (installation and setup), more details are available here:
138140

139141
https://github.com/verivital/nnv#installation
140142

@@ -160,7 +162,7 @@ https://github.com/verivital/nnv#installation
160162
Deep Learning Toolbox Converter for ONNX Model Format (https://www.mathworks.com/matlabcentral/fileexchange/67296-deep-learning-toolbox-converter-for-onnx-model-format)
161163
Deep Learning Toolbox Verification Library (https://www.mathworks.com/matlabcentral/fileexchange/118735-deep-learning-toolbox-verification-library)
162164
```
163-
Note: Support packages can be installed in MATLAB's HOME tab > Add-Ons > Get Add-ons, search for the support package using the Add-on Explorer and click on the Install button.
165+
Note: Support packages can be installed in MATLAB's HOME tab > Add-Ons > Get Add-ons, and then search for the support package using the Add-on Explorer and click on the Install button.
164166

165167

166168
#### Install NNV (install.m)
@@ -180,7 +182,7 @@ https://github.com/verivital/nnv/blob/master/code/nnv/startup_nnv.m
180182

181183
In MATLAB, navigate to the CAV2023 submission folder at `code/nnv/examples/NNV2.0/Submission/CAV2023`.
182184

183-
One can then execute the `run_cav23.m` script for the full paper results or `RE_cav23_short.m`, which reproduces all results from Sections 4.2 to 4.4 (about 1-2 hours of computation).
185+
One can then execute the `run_cav23.m` script for the full paper results (~15 hours) or `RE_cav23_short.m`, which reproduces all results from Sections 4.2 to 4.4 (~2 hours).
184186

185187
All the tables and figures will be generated in the same folder (nnv/code/nnv/examples/NNV2.0/Submission/CAV2023/).
186188

@@ -196,9 +198,7 @@ fpa_reach;
196198
plot_fpa;
197199
```
198200

199-
Once it is finished(this should only take a few minutes), one can see one new figure in the folder __nnv/code/nnv/examples/NNV2.0/Submission/CAV2023/__:
201+
Once it is finished (this should only take a few minutes), one can see one new figure in the folder __nnv/code/nnv/examples/NNV2.0/Submission/CAV2023/__:
200202

201203
`fpa.pdf` - Fig. 2 (c) (Neural ODE FPA)
202204

203-
204-

0 commit comments

Comments
 (0)