def flushBuffer(x, y, t): c = int(cnt[x, y, t]) fvs = [] for cutFrom, cutTo, fvSize, gmm, partName in parts: desc = np.ascontiguousarray(buffer[x, y, t, :c, cutFrom:(1 + cutTo)]) fv = yael.fvec_new_0(fvSize) yael.gmm_fisher(c, yael.FloatArray.acquirepointer(yael.numpy_to_fvec(desc)), gmm, flags, fv) fvs.append(yael.fvec_to_numpy(fv, fvSize).flatten()) ndescr[x, y, t] += c cnt[x, y, t] = 0 return np.sqrt(c) * np.hstack(tuple(fvs))
def flushBuffer(x, y, t): c = int(cnt[x, y, t]) fvs = [] for cutFrom, cutTo, fvSize, gmm, partName in parts: desc = np.ascontiguousarray(buffer[x, y, t, :c, cutFrom:(1 + cutTo)]) fv = yael.fvec_new_0(fvSize) yael.gmm_fisher( c, yael.FloatArray.acquirepointer(yael.numpy_to_fvec(desc)), gmm, flags, fv) fvs.append(yael.fvec_to_numpy(fv, fvSize).flatten()) ndescr[x, y, t] += c cnt[x, y, t] = 0 return np.sqrt(c) * np.hstack(tuple(fvs))
#! /usr/bin/env python import sys import argparse import numpy as np import yael parser = argparse.ArgumentParser() parser.add_argument('--gmm_ncomponents', type=int, required=True) parser.add_argument('--vocab', nargs=2, required=True) args = parser.parse_args() cutFrom, cutTo = map(int, args.vocab[0].split('-')) data = np.loadtxt(sys.stdin, dtype=np.float32, usecols=range(cutFrom, 1 + cutTo)) npoints, nfeatures = data.shape niter = 50 nthreads = 1 seed = 0 redo = 1 flags = yael.GMM_FLAGS_W gmm = yael.gmm_learn(nfeatures, npoints, args.gmm_ncomponents, niter, yael.FloatArray.acquirepointer(yael.numpy_to_fvec(data)), nthreads, seed, redo, flags) yael.gmm_write(gmm, open(args.vocab[1], 'w'))
#! /usr/bin/env python import sys import argparse import numpy as np import yael parser = argparse.ArgumentParser() parser.add_argument('--gmm_ncomponents', type = int, required = True) parser.add_argument('--vocab', nargs = 2, required = True) args = parser.parse_args() cutFrom, cutTo = map(int, args.vocab[0].split('-')) data = np.loadtxt(sys.stdin, dtype = np.float32, usecols = range(cutFrom, 1 + cutTo)) npoints, nfeatures = data.shape niter = 50 nthreads = 1 seed = 0 redo = 1 flags = yael.GMM_FLAGS_W gmm = yael.gmm_learn(nfeatures, npoints, args.gmm_ncomponents, niter, yael.FloatArray.acquirepointer(yael.numpy_to_fvec(data)), nthreads, seed, redo, flags) yael.gmm_write(gmm, open(args.vocab[1], 'w'))