clf = linear_model.LogisticRegression()

elif algorithm == 'dt':
    clf = DecisionTreeClassifier()

elif algorithm == 'mlp':
    clf = MLPClassifier(hidden_layer_sizes=(50,), max_iter=10, alpha=1e-4,
    solver='sgd', verbose=10, tol=1e-4, random_state=1, learning_rate_init=.1)

clf.fit(X_train, y_train)

print('{} score train: {}'.format(algorithm, clf.score(X_train, y_train)))
print('{} score test: {}'.format(algorithm, clf.score(X_test, y_test)))

if algorithm == 'knn':
    dist_test, indices_test = clf.kneighbors(X=X_test, n_neighbors=5, return_distance=True)

# print ("dist_test: ", np.mean(dist_test))
# print (clf.predict_proba(X_test[0].reshape(1, -1))[0])
# class permuation_ga:
#     def __init__(self):
#         pass
#     def

exit()

class adverserial_example:
    def __init__(self, dim=28*28, target=1, quantization=True, min_limit=0, max_limit=1):
        self.dim = dim
        self.target = target
        self.quantization = quantization