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
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
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
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
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
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
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
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
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
#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
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