clip_max=clip_max) images_adv, = batch_eval(model._sess, [model.nodes.input], [n_fgsm], [adv_image_lists[0]], args={'batch_size': batch_size}, feed={model._is_training: False}) adv_image_lists.append(images_adv) def generate_visualization(i0): def get_row(i): ims = adv_image_lists[i][i0:i0 + image_count] s, m = Cifar10Loader.std, Cifar10Loader.mean scale = lambda x: np.clip(x * s + m, 0, 255).astype(np.ubyte) return list(map(scale, ims)) cols = [get_row(i) for i in range(i0, i0 + len(epss))] return visualization.compose(cols, format=None) images = [im for i in range(i0, i0 + 3) for im in get_row(i)] comp_format = "".join([ str(i) + "," if i % image_count == image_count - 1 else ";" for i in range(len(images)) ])[:-1] return visualization.compose(images, format=comp_format) scaled_eps = eps * np.max(Cifar10Loader.std) viewer = Viewer("Adversarial examples, scaled eps=" + str(scaled_eps) + ", eps=" + str(eps)) viewer.display(np.arange(batch_size), generate_visualization)