Skip to content

Latest commit

 

History

History
69 lines (42 loc) · 3.09 KB

details.md

File metadata and controls

69 lines (42 loc) · 3.09 KB

DeepHyperion

DeepHyperion is a tool for generating test inputs and feature maps using illumination-search algorithm.

DeepHyperion-MNIST

To set up the environment and run the DeepHyperion tool adapted to the handwritten digit classification case study, follow the instructions here.

DeepHyperion-BNG

To set up the environment and run the DeepHyperion tool adapted to the self-driving car case study, follow the instructions here.

Experimental Data and Scripts

To regenerate the results and plots reported in the ISSTA paper, follow the instructions here To regenerate the results and plots reported in the TOSEM paper, follow the instructions here

Extra Use Case Scenarios

This section contains plausible scenarios on how DeepHyperion could be extended beyond the experiments performed in the paper.

Scenario 1: Modify the intervals of the maps

This scenario shows that a map can be rescaled to the granularity defined by the user. This adjustment is particularly useful when the user wants to compare maps produced in different runs/configurations or by different tools.

As an example, you can configure DeepHyperion-BeamNG to generate maps with N (N > 0) bins for each feature. To do this, first run DeepHyperion-BNG with predefined configuration. Then, as explained in Generate Processed Data and Rescaled Maps step 3, you can set the number of bins for each feature as follows:

python report_generator/app.py generate-map \
    --feature sd_steering 13 171 <N> \
    --feature mean_lateral_position 153 173 <N> \
        .\logs\run_XXX\simulations

For example, you can set N = 25, which generates the following map:

map

Or, you can set the N = 10, which generates the following map:

map

Scenario 2: Test a different DL model

This scenario shows the possibility of using trained models for DeepHyperion-MNIST different from the one considered in the experimental evaluation. As an example, you can configure DeepHyperion-MNIST to use the alternative model cnnClassifier.h5 which is already in models folder. To do this, you need to place the name of the new model in DeepHyperion-MNIST/properties.py as follows:

    MODEL = os.getenv('DH_MODEL', 'models/cnnClassifier.h5')

Moreover you can test your own model. You can train a new model by running the following command:

python DeepHyperion-MNIST/train_model.py <YOUR_MODEL_NAME>

After the new model has been trained, you can place it in DeepHyperion-MNIST/models folder, then edit the configuration in DeepHyperion-MNIST/properties.py file as follows:

    MODEL = os.getenv('DH_MODEL', 'models/<YOUR_MODEL_NAME>.h5')