Exemplo n.º 1
0
def get_hdp_labels_gpu(gpu_data, w, mu, sigma, relabel=False):

    labels = []
    z = []

    for i, data_set in enumerate(gpu_data):
        densities = gpustats.mvnpdf_multi(data_set,
                                          mu,
                                          sigma,
                                          weights=w[i].flatten(),
                                          get=False,
                                          logged=True,
                                          order='C')

        if relabel:
            z.append(
                np.asarray(
                    cuda_functions.gpu_apply_row_max(densities)[1].get(),
                    dtype='i'))
        else:
            z.append(None)

        labels.append(
            np.asarray(gpu_sampler.sample_discrete(densities, logged=True),
                       dtype='i'))

        densities.gpudata.free()
        del densities

    return labels, z
Exemplo n.º 2
0
def get_dp_labels_gpu(gpu_data, w, mu, sigma, relabel=False):
    densities = gpustats.mvnpdf_multi(
        gpu_data[0],
        mu,
        sigma,
        weights=w.flatten(),
        get=False,
        logged=True,
        order='C'
    )

    if relabel:
        z = np.asarray(
            cuda_functions.gpu_apply_row_max(densities)[1].get(),
            dtype='i'
        )
    else:
        z = None

    labels = np.asarray(
        gpu_sampler.sample_discrete(densities, logged=True),
        dtype='i'
    )

    densities.gpudata.free()
    del densities

    return labels, z
Exemplo n.º 3
0
def _compare_discrete(n, k):
    densities = _make_test_densities(n, k)
    dens = densities[0, :].copy() / densities[0, :].sum()
    expected_mu = np.dot(np.arange(k), dens)

    labels = gpusamp.sample_discrete(densities, logged=False)
    est_mu = labels.mean()
    return est_mu, expected_mu
Exemplo n.º 4
0
def _compare_discrete(n, k):
    densities = _make_test_densities(n, k)
    dens = densities[0,:].copy() / densities[0,:].sum()
    expected_mu = np.dot(np.arange(k), dens)

    labels = gpusamp.sample_discrete(densities, logged=False)
    est_mu = labels.mean()
    return est_mu, expected_mu
Exemplo n.º 5
0
def _compare_logged(n, k):
    densities = np.log(_make_test_densities(n, k))
    dens = np.exp((densities[0, :] - densities[0, :].max()))
    dens = dens / dens.sum()
    expected_mu = np.dot(np.arange(k), dens)

    labels = gpusamp.sample_discrete(densities, logged=True)
    est_mu = labels.mean()
    return est_mu, expected_mu
Exemplo n.º 6
0
def _compare_logged(n, k):
    densities = np.log(_make_test_densities(n, k))
    dens = np.exp((densities[0,:] - densities[0,:].max()))
    dens = dens / dens.sum()
    expected_mu = np.dot(np.arange(k), dens)

    labels = gpusamp.sample_discrete(densities, logged=True)
    est_mu = labels.mean()
    return est_mu, expected_mu
Exemplo n.º 7
0
def get_dp_labels_gpu(gpu_data, w, mu, sigma, relabel=False):
    densities = gpustats.mvnpdf_multi(gpu_data[0],
                                      mu,
                                      sigma,
                                      weights=w.flatten(),
                                      get=False,
                                      logged=True,
                                      order='C')

    if relabel:
        z = np.asarray(cuda_functions.gpu_apply_row_max(densities)[1].get(),
                       dtype='i')
    else:
        z = None

    labels = np.asarray(gpu_sampler.sample_discrete(densities, logged=True),
                        dtype='i')

    densities.gpudata.free()
    del densities

    return labels, z
Exemplo n.º 8
0
def get_hdp_labels_gpu(gpu_data, w, mu, sigma, relabel=False):

    labels = []
    z = []

    for i, data_set in enumerate(gpu_data):
        densities = gpustats.mvnpdf_multi(
            data_set,
            mu,
            sigma,
            weights=w[i].flatten(),
            get=False,
            logged=True,
            order='C'
        )

        if relabel:
            z.append(
                np.asarray(
                    cuda_functions.gpu_apply_row_max(densities)[1].get(),
                    dtype='i'
                )
            )
        else:
            z.append(None)

        labels.append(
            np.asarray(
                gpu_sampler.sample_discrete(densities, logged=True),
                dtype='i'
            )
        )

        densities.gpudata.free()
        del densities

    return labels, z
Exemplo n.º 9
0
                densities = gpustats.mvnpdf_multi(gdata[dataind], mu, Sigma,
                                                  weights=w.flatten(),
                                                  get=False, logged=True,
                                                  order='C')

                if ttype == 2:  # identification!!
                    Z = np.asarray(
                        cufuncs.gpu_apply_row_max(densities)[1].get(),
                        dtype='i'
                    )
                else:
                    Z = None

                labs = np.asarray(
                    gsamp.sample_discrete(densities, logged=True),
                    dtype='i'
                )
                subresult = [
                    np.array(nobs, dtype='i'),
                    labs,
                    np.array(gid, dtype='i')
                ]
                if Z is not None:
                    subresult.append(Z)

                results.append(subresult)

                densities.gpudata.free()
                del densities
Exemplo n.º 10
0
            #Sigma = Sigma.reshape(ncomp, ndim, ndim)
            Sigma = a_Sigma[it]
            
            if ttype>0: # 1 -- just densities ... 2 -- relabel too
                ## do GPU work ... 

                densities = gpustats.mvnpdf_multi(gdata[dataind], mu, Sigma,
                                                  weights = w.flatten(), get=False, logged=True,
                                                  order='C')

                if ttype==2: #identification!!
                    Z = np.asarray(cufuncs.gpu_apply_row_max(densities)[1].get(), dtype='i')
                else:
                    Z = None

                labs = np.asarray(gsamp.sample_discrete(densities, logged=True), dtype='i')
                subresult = [np.array(nobs, dtype='i'), labs, np.array(gid, dtype='i')]
                if Z is not None:
                    subresult.append(Z)

                results.append(subresult)

                #subtask.labs = labs
                #subtask.Z = Z
                #subtask.nobs = nobs
                #del subtask.mu
                #del subtask.w
                #del subtask.Sigma

                densities.gpudata.free()
                del densities
Exemplo n.º 11
0
                densities = gpustats.mvnpdf_multi(gdata[dataind],
                                                  mu,
                                                  Sigma,
                                                  weights=w.flatten(),
                                                  get=False,
                                                  logged=True,
                                                  order='C')

                if ttype == 2:  # identification!!
                    Z = np.asarray(
                        cufuncs.gpu_apply_row_max(densities)[1].get(),
                        dtype='i')
                else:
                    Z = None

                labs = np.asarray(gsamp.sample_discrete(densities,
                                                        logged=True),
                                  dtype='i')
                subresult = [
                    np.array(nobs, dtype='i'), labs,
                    np.array(gid, dtype='i')
                ]
                if Z is not None:
                    subresult.append(Z)

                results.append(subresult)

                densities.gpudata.free()
                del densities

            elif ttype == 0:
                # starting bem