def test_random_targets_vector(self): # Test utils.random_targets with a vector of labels as the input gt_labels = np.asarray([0, 1, 2, 3]) rt = utils.random_targets(gt_labels, 5) # Make sure random_targets returns a one-hot encoded labels self.assertTrue(len(rt.shape) == 2) rt_labels = np.argmax(rt, axis=1) # Make sure all labels are different from the correct labels self.assertTrue(np.all(rt_labels != gt_labels))
def test_random_targets_one_hot_single_label(self): # Test utils.random_targets with a single one-hot encoded label gt = np.asarray([0, 0, 1, 0, 0]) gt = gt.reshape((1, 5)) gt_labels = np.argmax(gt, axis=1) rt = utils.random_targets(gt, 5) # Make sure random_targets returns a one-hot encoded labels self.assertTrue(len(rt.shape) == 2) rt_labels = np.argmax(rt, axis=1) # Make sure all labels are different from the correct labels self.assertTrue(np.all(rt_labels != gt_labels))
def test_random_targets_one_hot(self): # Test utils.random_targets with one-hot encoded labels as the input gt = np.asarray([[0, 0, 1, 0, 0], [1, 0, 0, 0, 0], [0, 0, 0, 1, 0], [1, 0, 0, 0, 0]]) gt_labels = np.argmax(gt, axis=1) rt = utils.random_targets(gt, 5) # Make sure random_targets returns a one-hot encoded labels self.assertTrue(len(rt.shape) == 2) rt_labels = np.argmax(rt, axis=1) # Make sure all labels are different from the correct labels self.assertTrue(np.all(rt_labels != gt_labels))
feeder = MyFeederValTest(dataset=FLAGS.dataset, rand_gen=rand_gen, as_one_hot=True, val_inds=val_indices, test_val_set=test_val_set, mini_train_inds=mini_train_inds) # get the data X_train, y_train = feeder.train_indices(range(feeder.get_train_size())) X_val, y_val = feeder.val_indices(range(feeder.get_val_size())) X_test, y_test = feeder.test_data, feeder.test_label # getting the real test set y_train_sparse = y_train.argmax(axis=-1).astype(np.int32) y_val_sparse = y_val.argmax(axis=-1).astype(np.int32) y_test_sparse = y_test.argmax(axis=-1).astype(np.int32) if TARGETED: # get also the adversarial labels of the val and test sets if not os.path.isfile(os.path.join(attack_dir, 'y_val_targets.npy')): y_val_targets = random_targets(y_val_sparse , feeder.num_classes) y_test_targets = random_targets(y_test_sparse, feeder.num_classes) assert (y_val_targets.argmax(axis=1) != y_val_sparse).all() assert (y_test_targets.argmax(axis=1) != y_test_sparse).all() np.save(os.path.join(attack_dir, 'y_val_targets.npy') , y_val_targets) np.save(os.path.join(attack_dir, 'y_test_targets.npy'), y_test_targets) else: y_val_targets = np.load(os.path.join(attack_dir, 'y_val_targets.npy')) y_test_targets = np.load(os.path.join(attack_dir, 'y_test_targets.npy')) # Use Image Parameters img_rows, img_cols, nchannels = X_test.shape[1:4] nb_classes = y_test.shape[1] # Define input TF placeholder x = tf.placeholder(tf.float32, shape=(None, img_rows, img_cols, nchannels), name='x')