IBM / CNN-Cert

Codes for reproducing the experimental results in "CNN-Cert: An Efficient Framework for Certifying Robustness of Convolutional Neural Networks", published at AAAI 2019
Apache License 2.0
27 stars 16 forks source link

Using CNN-Cert on Keras Application models #5

Open shawnclq opened 4 years ago

shawnclq commented 4 years ago

Hi there, your work is extremely insightful and am hoping to try it out on the models I have.

Does CNN-Cert work on Keras Application models like Xception, VGG16 or ResNet50? Looking through the code, there are probably some layers like SeparableConv2D which are not in the list of available layers. How can I include them?

AkhilanB commented 4 years ago

Hi,

Thank you for your interest!

CNN-Cert may not directly work on some Keras Application models due to the inclusion of unsupported layers like SeperableConv2D or ZeroPadding2D. These layers can be included by adding them in the __init__ function of the Model class in cnn_bounds_full.py. In this function, layers like SeperableConv2D can be converted into the equivalent convolution layer and represented by the format of Model (see Dense for an example). Layers like ZeroPadding2D can be included by modifying the previous or next convolution layer (see BatchNormalization for an example).

shawnclq commented 4 years ago

Thanks for the prompt reply, I will try out your suggestion!