carlini/nn_robust_attacks

question for l2 distance in l2_attack

ZekunStevenZhang opened this issue · 2 comments

hey, i found when calculating the l2 distance in loss function of l2 attack, the following code is implemented:

self.l2dist= tf.reduce_sum(tf.square(self.newimg-(tf.tanh(self.timg) * self.boxmul + self.boxplus)),[1,2,3])

since the input data had already normalized between [-0.5,0.5], why applying tanh function to input image again here? why not just use

self.newimg - self.timg

Some code uses [0,1] or [0,255]. This code allows for other cases.

Some code uses [0,1] or [0,255]. This code allows for other cases.

but in this sentence:
imgs = np.arctanh((imgs - self.boxplus) / self.boxmul * 0.999999) # arctanh(2*imgs)
, if imgs is between [0,1], 2*imgs will be between [0,2], but the input of arctanh must be between [-1,1], this will result in errors