def fl_dense_py_kernel_np_numba_array64():
    K_dense = helper.create_kernel_dense_np_numba(dataArray, 'euclidean')
    obj = FacilityLocationFunction(n=num_samples,
                                   mode="dense",
                                   sijs=K_dense,
                                   separate_rep=False,
                                   pybind_mode="array64")
    obj.maximize(budget=budget,
                 optimizer=optimizer,
                 stopIfZeroGain=False,
                 stopIfNegativeGain=False,
                 verbose=False)
Пример #2
0
    #prepare data to be used in the analysis
    num_samples = param[0]
    num_clusters = param[1]

    points, cluster_ids, centers = make_blobs(n_samples=num_samples,
                                              centers=num_clusters,
                                              n_features=num_features,
                                              cluster_std=cluster_std_dev,
                                              return_centers=True,
                                              random_state=4)
    data = list(map(tuple, points))
    dataArray = np.array(data)

    if first == True:
        print("Pre compiling np_numba and fastdist functions")
        helper.create_kernel_dense_np_numba(dataArray, metric='euclidean')
        print("Threading layer chosen: %s" % threading_layer())
        helper.create_kernel_dense_fastdist(dataArray, metric='euclidean')
        print("Threading layer chosen: %s" % threading_layer())
        first = False

    for method in method_dictionary:
        print("Method: ", method)
        row = [num_samples, method]
        func = method_dictionary[method] + "(dataArray, metric='euclidean')"
        #print("Calling :", func)
        setup = "from submodlib.helper import " + method_dictionary[
            method] + "; from __main__ import dataArray"
        #print("Setup: ", setup)
        t = timeit.timeit(func, setup, number=num_executions)
        t = round(t / num_executions, num_places)