Пример #1
0
def main(argv):
    # read in arguments
    args = sys.argv[1:]
    if len(args) > 0 and args[0] in ("--help", "-h"):
        print HELP_USAGE
        return
    assert len(args) == 3, "wrong number of command parameters!"

    featDir = args[0]
    k = int(args[1])
    gmmDir = args[2]

    trainMat = np.load(featDir).astype(np.float32)
    trainNum, featNum = np.shape(trainMat)
    flags = yael.GMM_FLAGS_W
    niter = 20

    gmm = yael.gmm_learn(
        featNum,
        trainNum,
        k,
        niter,
        yael.FloatArray.acquirepointer(yael.numpy_to_fvec(trainMat)),
        1,
        random.randrange(1000000),
        8,
        flags,
    )
    f = open(gmmDir, "w")
    yael.gmm_write(gmm, f)
    del gmm
Пример #2
0
def compute_gmm(data, nr_clusters, nr_iterations, nr_threads, seed, nr_redos):
    """Computes GMM using yael functions."""
    N, D = data.shape
    data = np.ascontiguousarray(data)
    return gmm_learn(
        D, N, nr_clusters, nr_iterations, numpy_to_fvec_ref(data), nr_threads,
        seed, nr_redos, GMM_FLAGS_W)
Пример #3
0
    def fit(self, X):
        n_samples, self.n_features = X.shape

        yael_X = yael.numpy_to_fvec_ref(X)

        yael_gmm = yael.gmm_learn(
            self.n_features, n_samples, self.n_components, self.n_iter, yael_X,
            self.n_threads, 0, self.n_init,
            yael.GMM_FLAGS_W | yael.GMM_FLAGS_SIGMA | yael.GMM_FLAGS_MU)

        self.means_ = yael.fvec_to_numpy(
            yael_gmm.mu, self.n_components * self.n_features).reshape(
                (self.n_components, self.n_features))
        self.covars_ = yael.fvec_to_numpy(
            yael_gmm.sigma, self.n_components * self.n_features).reshape(
                (self.n_components, self.n_features))
        self.weights_ = yael.fvec_to_numpy(yael_gmm.w, self.n_components)

        yael.gmm_delete(yael_gmm)
Пример #4
0
def compute_gmm(data, nr_clusters, nr_iterations, nr_threads, seed, nr_redos):
    """ Computes GMM using yael functions. """
    N, D = data.shape
    gmm = gmm_learn(D, N, nr_clusters, nr_iterations, numpy_to_fvec_ref(data),
                    nr_threads, seed, nr_redos, GMM_FLAGS_W)
    return gmm