예제 #1
0
 def __init__(self, dataset, epsilon, numClasses, numFeatures, batchSize):
     print("initializing client")
     data = utils.load_dataset(dataset, npy=True)
     X = data['X']
     y = data['y']
     (n, d) = X.shape
     X_train = X[range(0, n / 2), :]
     y_train = y[range(0, n / 2)]
     X_test = X[range(n / 2, n), :]
     y_test = y[range(n / 2, n)]
     self.ytest = y_test
     self.batchSize = batchSize
     self.softmax_model_obj = softmax_model_obj.SoftMaxModel(
         X_train, y_train, epsilon, numClasses)
     self.softmax_model_test = softmax_model_test.SoftMaxModelTest(
         X_test, y_test, X_train, y_train, numClasses, numFeatures)
예제 #2
0
    models = []

    for i in range(numClasses):
        # Try a little more IID
        models.append(dataPath + str(i))  # + str((i + 1) % 10) + str((i
        # + 2) % 10))

    for attack in argv[2:]:
        attack_delim = attack.split("_")
        sybil_set_size = attack_delim[0]
        from_class = attack_delim[1]
        to_class = attack_delim[2]
        for i in range(int(sybil_set_size)):
            models.append(dataPath + "_bad_" + from_class + "_" + to_class)

    softmax_test = softmax_model_test.SoftMaxModelTest(dataset, numClasses,
                                                       numFeatures)
    # Hard code poisoners in a 2_x_x attack
    threshholds = [0.29, 0.28, 0.27, 0.26, 0.25]
    # threshholds = [0.5, 0.25, 0.1, 0.01, 0.001]
    num_trials = 5

    eval_data = np.zeros((num_trials * len(threshholds), 3))

    for sim_i in range(len(threshholds)):
        max_similarity = threshholds[sim_i]
        for eval_i in range(num_trials):
            print("Evaluating " + str(eval_i) + "th iteration of " +
                  str(max_similarity))
            topk_prop = 0.05
            weights, ratio = non_iid(max_similarity,
                                     Xtest,