예제 #1
0
train_y = np.array(dataset.train_y)
test_x = pad_sequences(dataset.test_seqs2, maxlen=max_len, padding='post')
test_y = np.array(dataset.test_y)

model = models.Model(dataset, model_path).cuda()
attacker = LSAttack(model, word_candidate)

all_test_num = len(dataset.test_y)
print(f'Total have {all_test_num} test examples')


wrong_classified_num = 0
total_num = 0

# logger
cur_logger = MyLogger(log_file)

# save results
test_idx_list = []

cur_saver = ResultSaver()


log_file.write('======================START======================\n\n')
for test_idx in range(all_test_num):
    total_num += 1
    pos_tags = test_pos_tags[test_idx]
    x_orig = test_x[test_idx]
    orig_label = test_y[test_idx]
    orig_preds = model.predict(x_orig[np.newaxis, :])[0]
    if np.argmax(orig_preds) != orig_label:
예제 #2
0
                      word_candidate,
                      pop_size=pop_size,
                      max_iters=max_iter)
print('the length of test cases is:', len(test_s1))

test_idxs = np.arange(len(test_s1))
# np.random.shuffle(test_idxs)
# test_idxs = np.random.choice(len(test_s1), size=len(test_s1), replace=False)

test_list = []

skip_num = 0
total_num = 0

# logger
cur_logger = MyLogger(log_file=log_file)

# saver
cur_saver = ResultSaver()

print('start')
for test_idx in test_idxs:
    total_num += 1
    s1 = test_s1[test_idx]
    s2 = test_s2[test_idx]
    pos_tags = test_pos_tags[test_idx]
    attack_pred = np.argmax(model.pred([s1], [s2])[0])
    true_label = test['label'][test_idx]
    x_len = np.sum(np.sign(s2))
    if attack_pred != true_label:
        print('Wrong classified')