deep-verify icon indicating copy to clipboard operation
deep-verify copied to clipboard

Analysis 2D maxpool

Open jiahaubai opened this issue 4 years ago • 3 comments

Thanks for providing code!! I saw the analysis(verification) about maxpool in the paper. I am curious about if this repository provide the analysis containing 2D maxpool ? If yes, how should I use it ?   verify.py seems to have only analysis on conv and relu :)

jiahaubai avatar Mar 16 '21 17:03 jiahaubai

Dear jiahaubai, the verify.py code example uses the DNN model class (https://github.com/deepmind/interval-bound-propagation/blob/master/interval_bound_propagation/src/model.py#L583). It is not necessary to use the DNN class at all; it was provided purely as a convenience for setting up simple sequential convolutional networks employing some of the supported layer types. You are free to write a more complex neural network class, which may be used instead of the DNN classifier in verify.py. Note that tf.nn.maxpool (with VALID padding) is already supported by the underlying verification engine, so it's enough for your replacement classifier to simply create tf.nn.maxpool layers. One option would be to fork the DNN class itself to allow maxpool layers to be specified in a way analogous to conv layers, something like ('maxpool2d', (4, 4), 'VALID', 2).

RobertStanforth avatar Mar 23 '21 13:03 RobertStanforth

Dear RobertStanforth,

Thank you for getting back to me ! It will be very helpful for me, I will give it a try !

But another problem occurs when I execute verify.py use command python verify.py --model=tiny --epsilon=0.02

I get the error

File "verify.py", line 177, in <lambda>
    lambda x: x.set_shape([test_batch_size] + x.shape[1:]), test_data_live)
TypeError: can only concatenate list (not "TensorShape") to list

I think it may be due to version issues the system environment I used is :

python == 3.7.7
tensorflow==1.14.0
tensorflow-estimator==1.14.0
tensorflow-probability==0.7.0 
dm-sonnet==1.35

Could you provide the environment requirements, please ~ Are there any details I should notice when I run the code ?

Cheers, jiahaubai

jiahaubai avatar Mar 28 '21 00:03 jiahaubai

Hi jiahaubai, I believe we were using tensorflow 1.11.0 at the time. Rather than pinning to a legacy version, I'd suggest simply fixing up the error by using .as_list() to convert a TensorShape to a Python list: [test_batch_size] + x.shape[1:].as_list()

RobertStanforth avatar Apr 01 '21 14:04 RobertStanforth