From 02d848f01f3dc3b8df4384f13375411059bd04a2 Mon Sep 17 00:00:00 2001 From: Alexander Ankudinov Date: Wed, 15 Nov 2017 00:57:41 +0500 Subject: [PATCH] Add dtype to LDAModel. Partially fix (#1656) * Add dtype to LdaModel, assert about it everywhere * Implement loading of old models without dtype * Use assert_allclose instead of == in LdaModel tests. Use np.issubdtype when checking if something is float. * Fix AuthorTopicModel * Fix matutils.dirichlet_expectation * replace assert with docstring comment * add test to check that it really saves dtype for different inputs * Change default to np.float32 and cleanup * Fix wrong logging message * Remove out-of-place comment * Cleanup PEP8 * Add dtype to sklearn LdaTransformer * Set precision explicitly in lda model converters * Add dtype to LdaMulticore * Set dtype to float64 explicitly to retain backward compatibility in models using LdaModel * Cleanup asserts and fix another place calculating in float64 * Fix import * Fix remarks by piskvorky * Add backward compatibility tests * Add missing .npy files * Fix dirichlet_expectation not working with np.float16 * Fix path to saved model --- gensim/matutils.py | 3 +- gensim/models/atmodel.py | 4 + gensim/models/hdpmodel.py | 2 +- gensim/models/ldamodel.py | 89 +++++++++++++----- gensim/models/ldamulticore.py | 6 +- gensim/models/ldaseqmodel.py | 7 +- gensim/models/wrappers/ldamallet.py | 3 +- gensim/models/wrappers/ldavowpalwabbit.py | 3 +- gensim/sklearn_api/ldamodel.py | 8 +- gensim/test/basetmtests.py | 3 +- gensim/test/test_atmodel.py | 14 +++ gensim/test/test_data/DTM/ldaseq_3_0_1_model | Bin 0 -> 320384 bytes gensim/test/test_data/atmodel_3_0_1_model | Bin 0 -> 5550 bytes .../atmodel_3_0_1_model.expElogbeta.npy | Bin 0 -> 272 bytes .../test_data/atmodel_3_0_1_model.id2word | Bin 0 -> 430 bytes .../test/test_data/atmodel_3_0_1_model.state | Bin 0 -> 980 bytes gensim/test/test_data/lda_3_0_1_model | Bin 0 -> 4924 bytes .../test_data/lda_3_0_1_model.expElogbeta.npy | Bin 0 -> 272 bytes gensim/test/test_data/lda_3_0_1_model.id2word | Bin 0 -> 430 bytes gensim/test/test_data/lda_3_0_1_model.state | Bin 0 -> 832 bytes gensim/test/test_ldamodel.py | 58 +++++++----- gensim/test/test_ldaseqmodel.py | 15 +++ 22 files changed, 157 insertions(+), 58 deletions(-) create mode 100644 gensim/test/test_data/DTM/ldaseq_3_0_1_model create mode 100644 gensim/test/test_data/atmodel_3_0_1_model create mode 100644 gensim/test/test_data/atmodel_3_0_1_model.expElogbeta.npy create mode 100644 gensim/test/test_data/atmodel_3_0_1_model.id2word create mode 100644 gensim/test/test_data/atmodel_3_0_1_model.state create mode 100644 gensim/test/test_data/lda_3_0_1_model create mode 100644 gensim/test/test_data/lda_3_0_1_model.expElogbeta.npy create mode 100644 gensim/test/test_data/lda_3_0_1_model.id2word create mode 100644 gensim/test/test_data/lda_3_0_1_model.state diff --git a/gensim/matutils.py b/gensim/matutils.py index 38e2431caf..717612cb0f 100644 --- a/gensim/matutils.py +++ b/gensim/matutils.py @@ -602,13 +602,12 @@ def jaccard_distance(set1, set2): def dirichlet_expectation(alpha): """ For a vector `theta~Dir(alpha)`, compute `E[log(theta)]`. - """ if len(alpha.shape) == 1: result = psi(alpha) - psi(np.sum(alpha)) else: result = psi(alpha) - psi(np.sum(alpha, 1))[:, np.newaxis] - return result.astype(alpha.dtype) # keep the same precision as input + return result.astype(alpha.dtype, copy=False) # keep the same precision as input def qr_destroy(la): diff --git a/gensim/models/atmodel.py b/gensim/models/atmodel.py index 9c691b8c25..6abcf6d34a 100755 --- a/gensim/models/atmodel.py +++ b/gensim/models/atmodel.py @@ -70,6 +70,7 @@ def __init__(self, eta, lambda_shape, gamma_shape): self.sstats = np.zeros(lambda_shape) self.gamma = np.zeros(gamma_shape) self.numdocs = 0 + self.dtype = np.float64 # To be compatible with LdaState def construct_doc2author(corpus, author2doc): @@ -203,6 +204,9 @@ def __init__(self, corpus=None, num_topics=100, id2word=None, author2doc=None, d >>> model = AuthorTopicModel(corpus, num_topics=50, author2doc=author2doc, id2word=id2word, alpha='auto', eval_every=5) # train asymmetric alpha from data """ + # NOTE: this doesn't call constructor of a base class, but duplicates most of this code + # so we have to set dtype to float64 default here + self.dtype = np.float64 # NOTE: as distributed version of this model is not implemented, "distributed" is set to false. Some of the # infrastructure to implement a distributed author-topic model is already in place, such as the AuthorTopicState. diff --git a/gensim/models/hdpmodel.py b/gensim/models/hdpmodel.py index ebae837b57..aeb771e637 100755 --- a/gensim/models/hdpmodel.py +++ b/gensim/models/hdpmodel.py @@ -538,7 +538,7 @@ def suggested_lda_model(self): The num_topics is m_T (default is 150) so as to preserve the matrice shapes when we assign alpha and beta. """ alpha, beta = self.hdp_to_lda() - ldam = ldamodel.LdaModel(num_topics=self.m_T, alpha=alpha, id2word=self.id2word, random_state=self.random_state) + ldam = ldamodel.LdaModel(num_topics=self.m_T, alpha=alpha, id2word=self.id2word, random_state=self.random_state, dtype=np.float64) ldam.expElogbeta[:] = beta return ldam diff --git a/gensim/models/ldamodel.py b/gensim/models/ldamodel.py index 130607b7ce..c3dabb6ee2 100755 --- a/gensim/models/ldamodel.py +++ b/gensim/models/ldamodel.py @@ -63,7 +63,7 @@ def update_dir_prior(prior, N, logphat, rho): **Huang: Maximum Likelihood Estimation of Dirichlet Distribution Parameters.** http://jonathan-huang.org/research/dirichlet/dirichlet.pdf """ - dprior = np.copy(prior) + dprior = np.copy(prior) # TODO: unused var??? gradf = N * (psi(np.sum(prior)) - psi(prior) + logphat) c = N * polygamma(1, np.sum(prior)) @@ -90,10 +90,11 @@ class LdaState(utils.SaveLoad): """ - def __init__(self, eta, shape): - self.eta = eta - self.sstats = np.zeros(shape) + def __init__(self, eta, shape, dtype=np.float32): + self.eta = eta.astype(dtype, copy=False) + self.sstats = np.zeros(shape, dtype=dtype) self.numdocs = 0 + self.dtype = dtype def reset(self): """ @@ -168,6 +169,17 @@ def get_lambda(self): def get_Elogbeta(self): return dirichlet_expectation(self.get_lambda()) + + @classmethod + def load(cls, fname, *args, **kwargs): + result = super(LdaState, cls).load(fname, *args, **kwargs) + + # dtype could be absent in old models + if not hasattr(result, 'dtype'): + result.dtype = np.float64 # float64 was implicitly used before (cause it's default in numpy) + logging.info("dtype was not set in saved %s file %s, assuming np.float64", result.__class__.__name__, fname) + + return result # endclass LdaState @@ -194,7 +206,7 @@ def __init__(self, corpus=None, num_topics=100, id2word=None, alpha='symmetric', eta=None, decay=0.5, offset=1.0, eval_every=10, iterations=50, gamma_threshold=0.001, minimum_probability=0.01, random_state=None, ns_conf=None, minimum_phi_value=0.01, - per_word_topics=False, callbacks=None): + per_word_topics=False, callbacks=None, dtype=np.float32): """ If given, start training from the iterable `corpus` straight away. If not given, the model is left untrained (presumably because you want to call `update()` manually). @@ -236,9 +248,11 @@ def __init__(self, corpus=None, num_topics=100, id2word=None, `minimum_probability` controls filtering the topics returned for a document (bow). - `random_state` can be a np.random.RandomState object or the seed for one + `random_state` can be a np.random.RandomState object or the seed for one. + + `callbacks` a list of metric callbacks to log/visualize evaluation metrics of topic model during training. - `callbacks` a list of metric callbacks to log/visualize evaluation metrics of topic model during training + `dtype` is data-type to use during calculations inside model. All inputs are also converted to this dtype. Example: @@ -250,6 +264,7 @@ def __init__(self, corpus=None, num_topics=100, id2word=None, >>> lda = LdaModel(corpus, num_topics=50, alpha='auto', eval_every=5) # train asymmetric alpha from data """ + self.dtype = dtype # store user-supplied parameters self.id2word = id2word @@ -333,10 +348,14 @@ def __init__(self, corpus=None, num_topics=100, id2word=None, raise RuntimeError("failed to initialize distributed LDA (%s)" % err) # Initialize the variational distribution q(beta|lambda) - self.state = LdaState(self.eta, (self.num_topics, self.num_terms)) - self.state.sstats = self.random_state.gamma(100., 1. / 100., (self.num_topics, self.num_terms)) + self.state = LdaState(self.eta, (self.num_topics, self.num_terms), dtype=self.dtype) + self.state.sstats[...] = self.random_state.gamma(100., 1. / 100., (self.num_topics, self.num_terms)) self.expElogbeta = np.exp(dirichlet_expectation(self.state.sstats)) + # Check that we haven't accidentally fall back to np.float64 + assert self.eta.dtype == self.dtype + assert self.expElogbeta.dtype == self.dtype + # if a training corpus was provided, start estimating the model right away if corpus is not None: use_numpy = self.dispatcher is not None @@ -357,25 +376,25 @@ def init_dir_prior(self, prior, name): if isinstance(prior, six.string_types): if prior == 'symmetric': - logger.info("using symmetric %s at %s", name, 1.0 / prior_shape) - init_prior = np.asarray([1.0 / self.num_topics for i in xrange(prior_shape)]) + logger.info("using symmetric %s at %s", name, 1.0 / self.num_topics) + init_prior = np.asarray([1.0 / self.num_topics for i in xrange(prior_shape)], dtype=self.dtype) elif prior == 'asymmetric': - init_prior = np.asarray([1.0 / (i + np.sqrt(prior_shape)) for i in xrange(prior_shape)]) + init_prior = np.asarray([1.0 / (i + np.sqrt(prior_shape)) for i in xrange(prior_shape)], dtype=self.dtype) init_prior /= init_prior.sum() logger.info("using asymmetric %s %s", name, list(init_prior)) elif prior == 'auto': is_auto = True - init_prior = np.asarray([1.0 / self.num_topics for i in xrange(prior_shape)]) + init_prior = np.asarray([1.0 / self.num_topics for i in xrange(prior_shape)], dtype=self.dtype) if name == 'alpha': logger.info("using autotuned %s, starting with %s", name, list(init_prior)) else: raise ValueError("Unable to determine proper %s value given '%s'" % (name, prior)) elif isinstance(prior, list): - init_prior = np.asarray(prior) + init_prior = np.asarray(prior, dtype=self.dtype) elif isinstance(prior, np.ndarray): - init_prior = prior + init_prior = prior.astype(self.dtype, copy=False) elif isinstance(prior, np.number) or isinstance(prior, numbers.Real): - init_prior = np.asarray([prior] * prior_shape) + init_prior = np.asarray([prior] * prior_shape, dtype=self.dtype) else: raise ValueError("%s must be either a np array of scalars, list of scalars, or scalar" % name) @@ -388,6 +407,7 @@ def __str__(self): def sync_state(self): self.expElogbeta = np.exp(self.state.get_Elogbeta()) + assert self.expElogbeta.dtype == self.dtype def clear(self): """Clear model state (free up some memory). Used in the distributed algo.""" @@ -421,11 +441,15 @@ def inference(self, chunk, collect_sstats=False): logger.debug("performing inference on a chunk of %i documents", len(chunk)) # Initialize the variational distribution q(theta|gamma) for the chunk - gamma = self.random_state.gamma(100., 1. / 100., (len(chunk), self.num_topics)) + gamma = self.random_state.gamma(100., 1. / 100., (len(chunk), self.num_topics)).astype(self.dtype, copy=False) Elogtheta = dirichlet_expectation(gamma) expElogtheta = np.exp(Elogtheta) + + assert Elogtheta.dtype == self.dtype + assert expElogtheta.dtype == self.dtype + if collect_sstats: - sstats = np.zeros_like(self.expElogbeta) + sstats = np.zeros_like(self.expElogbeta, dtype=self.dtype) else: sstats = None converged = 0 @@ -440,7 +464,7 @@ def inference(self, chunk, collect_sstats=False): ids = [int(idx) for idx, _ in doc] else: ids = [idx for idx, _ in doc] - cts = np.array([cnt for _, cnt in doc]) + cts = np.array([cnt for _, cnt in doc], dtype=self.dtype) gammad = gamma[d, :] Elogthetad = Elogtheta[d, :] expElogthetad = expElogtheta[d, :] @@ -467,6 +491,7 @@ def inference(self, chunk, collect_sstats=False): converged += 1 break gamma[d, :] = gammad + assert gammad.dtype == self.dtype if collect_sstats: # Contribution of document d to the expected sufficient # statistics for the M step. @@ -481,6 +506,9 @@ def inference(self, chunk, collect_sstats=False): # sstats[k, w] = \sum_d n_{dw} * phi_{dwk} # = \sum_d n_{dw} * exp{Elogtheta_{dk} + Elogbeta_{kw}} / phinorm_{dw}. sstats *= self.expElogbeta + assert sstats.dtype == self.dtype + + assert gamma.dtype == self.dtype return gamma, sstats def do_estep(self, chunk, state=None): @@ -494,6 +522,7 @@ def do_estep(self, chunk, state=None): gamma, sstats = self.inference(chunk, collect_sstats=True) state.sstats += sstats state.numdocs += gamma.shape[0] # avoids calling len(chunk) on a generator + assert gamma.dtype == self.dtype return gamma def update_alpha(self, gammat, rho): @@ -503,10 +532,12 @@ def update_alpha(self, gammat, rho): """ N = float(len(gammat)) logphat = sum(dirichlet_expectation(gamma) for gamma in gammat) / N + assert logphat.dtype == self.dtype self.alpha = update_dir_prior(self.alpha, N, logphat, rho) logger.info("optimized alpha %s", list(self.alpha)) + assert self.alpha.dtype == self.dtype return self.alpha def update_eta(self, lambdat, rho): @@ -516,9 +547,11 @@ def update_eta(self, lambdat, rho): """ N = float(lambdat.shape[0]) logphat = (sum(dirichlet_expectation(lambda_) for lambda_ in lambdat) / N).reshape((self.num_terms,)) + assert logphat.dtype == self.dtype self.eta = update_dir_prior(self.eta, N, logphat, rho) + assert self.eta.dtype == self.dtype return self.eta def log_perplexity(self, chunk, total_docs=None): @@ -650,7 +683,7 @@ def rho(): logger.info('initializing %s workers', self.numworkers) self.dispatcher.reset(self.state) else: - other = LdaState(self.eta, self.state.sstats.shape) + other = LdaState(self.eta, self.state.sstats.shape, self.dtype) dirty = False reallen = 0 @@ -694,7 +727,7 @@ def rho(): logger.info('initializing workers') self.dispatcher.reset(self.state) else: - other = LdaState(self.eta, self.state.sstats.shape) + other = LdaState(self.eta, self.state.sstats.shape, self.dtype) dirty = False # endfor single corpus iteration @@ -775,6 +808,9 @@ def bound(self, corpus, gamma=None, subsample_ratio=1.0): gammad = gamma[d] Elogthetad = dirichlet_expectation(gammad) + assert gammad.dtype == self.dtype + assert Elogthetad.dtype == self.dtype + # E[log p(doc | theta, beta)] score += np.sum(cnt * logsumexp(Elogthetad + Elogbeta[:, int(id)]) for id, cnt in doc) @@ -823,6 +859,7 @@ def show_topics(self, num_topics=10, num_words=10, log=False, formatted=True): # add a little random jitter, to randomize results around the same alpha sort_alpha = self.alpha + 0.0001 * self.random_state.rand(len(self.alpha)) + # random_state.rand returns float64, but converting back to dtype won't speed up anything sorted_topics = list(matutils.argsort(sort_alpha)) chosen_topics = sorted_topics[:num_topics // 2] + sorted_topics[-num_topics // 2:] @@ -859,7 +896,7 @@ def show_topic(self, topicid, topn=10): def get_topics(self): """ Returns: - np.ndarray: `num_topics` x `vocabulary_size` array of floats which represents + np.ndarray: `num_topics` x `vocabulary_size` array of floats (self.dtype) which represents the term topic matrix learned during inference. """ topics = self.state.get_lambda() @@ -1031,6 +1068,7 @@ def diff(self, other, distance="kullback_leibler", num_words=100, >>> print(mdiff) # get matrix with difference for each topic pair from `m1` and `m2` >>> print(annotation) # get array with positive/negative words for each topic pair from `m1` and `m2` + Note: this ignores difference in model dtypes """ distances = { @@ -1189,9 +1227,14 @@ def load(cls, fname, *args, **kwargs): result.random_state = utils.get_random_state(None) # using default value `get_random_state(None)` logging.warning("random_state not set so using default value") + # dtype could be absent in old models + if not hasattr(result, 'dtype'): + result.dtype = np.float64 # float64 was implicitly used before (cause it's default in numpy) + logging.info("dtype was not set in saved %s file %s, assuming np.float64", result.__class__.__name__, fname) + state_fname = utils.smart_extension(fname, '.state') try: - result.state = super(LdaModel, cls).load(state_fname, *args, **kwargs) + result.state = LdaState.load(state_fname, *args, **kwargs) except Exception as e: logging.warning("failed to load state from %s: %s", state_fname, e) diff --git a/gensim/models/ldamulticore.py b/gensim/models/ldamulticore.py index 0c22c64f7c..186029c971 100644 --- a/gensim/models/ldamulticore.py +++ b/gensim/models/ldamulticore.py @@ -49,6 +49,8 @@ import logging +import numpy as np + from gensim import utils from gensim.models.ldamodel import LdaModel, LdaState @@ -82,7 +84,7 @@ def __init__(self, corpus=None, num_topics=100, id2word=None, workers=None, chunksize=2000, passes=1, batch=False, alpha='symmetric', eta=None, decay=0.5, offset=1.0, eval_every=10, iterations=50, gamma_threshold=0.001, random_state=None, minimum_probability=0.01, - minimum_phi_value=0.01, per_word_topics=False): + minimum_phi_value=0.01, per_word_topics=False, dtype=np.float32): """ If given, start training from the iterable `corpus` straight away. If not given, the model is left untrained (presumably because you want to call `update()` manually). @@ -148,7 +150,7 @@ def __init__(self, corpus=None, num_topics=100, id2word=None, workers=None, id2word=id2word, chunksize=chunksize, passes=passes, alpha=alpha, eta=eta, decay=decay, offset=offset, eval_every=eval_every, iterations=iterations, gamma_threshold=gamma_threshold, random_state=random_state, minimum_probability=minimum_probability, - minimum_phi_value=minimum_phi_value, per_word_topics=per_word_topics + minimum_phi_value=minimum_phi_value, per_word_topics=per_word_topics, dtype=dtype ) def update(self, corpus, chunks_as_numpy=False): diff --git a/gensim/models/ldaseqmodel.py b/gensim/models/ldaseqmodel.py index 26709c04d6..8173d0d292 100644 --- a/gensim/models/ldaseqmodel.py +++ b/gensim/models/ldaseqmodel.py @@ -130,7 +130,8 @@ def __init__(self, corpus=None, time_slice=None, id2word=None, alphas=0.01, num_ if initialize == 'gensim': lda_model = ldamodel.LdaModel( corpus, id2word=self.id2word, num_topics=self.num_topics, - passes=passes, alpha=self.alphas, random_state=random_state + passes=passes, alpha=self.alphas, random_state=random_state, + dtype=np.float64 ) self.sstats = np.transpose(lda_model.state.sstats) if initialize == 'ldamodel': @@ -244,7 +245,7 @@ def lda_seq_infer(self, corpus, topic_suffstats, gammas, lhoods, vocab_len = self.vocab_len bound = 0.0 - lda = ldamodel.LdaModel(num_topics=num_topics, alpha=self.alphas, id2word=self.id2word) + lda = ldamodel.LdaModel(num_topics=num_topics, alpha=self.alphas, id2word=self.id2word, dtype=np.float64) lda.topics = np.array(np.split(np.zeros(vocab_len * num_topics), vocab_len)) ldapost = LdaPost(max_doc_len=self.max_doc_len, num_topics=num_topics, lda=lda) @@ -419,7 +420,7 @@ def __getitem__(self, doc): """ Similar to the LdaModel __getitem__ function, it returns topic proportions of a document passed. """ - lda_model = ldamodel.LdaModel(num_topics=self.num_topics, alpha=self.alphas, id2word=self.id2word) + lda_model = ldamodel.LdaModel(num_topics=self.num_topics, alpha=self.alphas, id2word=self.id2word, dtype=np.float64) lda_model.topics = np.array(np.split(np.zeros(self.vocab_len * self.num_topics), self.vocab_len)) ldapost = LdaPost(num_topics=self.num_topics, max_doc_len=len(doc), lda=lda_model, doc=doc) diff --git a/gensim/models/wrappers/ldamallet.py b/gensim/models/wrappers/ldamallet.py index 19c93e5f6c..e58c85f17a 100644 --- a/gensim/models/wrappers/ldamallet.py +++ b/gensim/models/wrappers/ldamallet.py @@ -373,7 +373,8 @@ def malletmodel2ldamodel(mallet_model, gamma_threshold=0.001, iterations=50): model_gensim = LdaModel( id2word=mallet_model.id2word, num_topics=mallet_model.num_topics, alpha=mallet_model.alpha, iterations=iterations, - gamma_threshold=gamma_threshold + gamma_threshold=gamma_threshold, + dtype=numpy.float64 # don't loose precision when converting from MALLET ) model_gensim.expElogbeta[:] = mallet_model.wordtopics return model_gensim diff --git a/gensim/models/wrappers/ldavowpalwabbit.py b/gensim/models/wrappers/ldavowpalwabbit.py index ede5074b99..3c7b747e61 100644 --- a/gensim/models/wrappers/ldavowpalwabbit.py +++ b/gensim/models/wrappers/ldavowpalwabbit.py @@ -586,7 +586,8 @@ def vwmodel2ldamodel(vw_model, iterations=50): model_gensim = LdaModel( num_topics=vw_model.num_topics, id2word=vw_model.id2word, chunksize=vw_model.chunksize, passes=vw_model.passes, alpha=vw_model.alpha, eta=vw_model.eta, decay=vw_model.decay, - offset=vw_model.offset, iterations=iterations, gamma_threshold=vw_model.gamma_threshold + offset=vw_model.offset, iterations=iterations, gamma_threshold=vw_model.gamma_threshold, + dtype=numpy.float32 ) model_gensim.expElogbeta[:] = vw_model._get_topics() return model_gensim diff --git a/gensim/sklearn_api/ldamodel.py b/gensim/sklearn_api/ldamodel.py index 40d7c52db0..76620cb498 100644 --- a/gensim/sklearn_api/ldamodel.py +++ b/gensim/sklearn_api/ldamodel.py @@ -26,7 +26,7 @@ class LdaTransformer(TransformerMixin, BaseEstimator): def __init__(self, num_topics=100, id2word=None, chunksize=2000, passes=1, update_every=1, alpha='symmetric', eta=None, decay=0.5, offset=1.0, eval_every=10, iterations=50, gamma_threshold=0.001, - minimum_probability=0.01, random_state=None, scorer='perplexity'): + minimum_probability=0.01, random_state=None, scorer='perplexity', dtype=np.float32): """ Sklearn wrapper for LDA model. See gensim.model.LdaModel for parameter details. @@ -50,6 +50,7 @@ def __init__(self, num_topics=100, id2word=None, chunksize=2000, passes=1, updat self.minimum_probability = minimum_probability self.random_state = random_state self.scorer = scorer + self.dtype = dtype def fit(self, X, y=None): """ @@ -67,7 +68,7 @@ def fit(self, X, y=None): alpha=self.alpha, eta=self.eta, decay=self.decay, offset=self.offset, eval_every=self.eval_every, iterations=self.iterations, gamma_threshold=self.gamma_threshold, minimum_probability=self.minimum_probability, - random_state=self.random_state + random_state=self.random_state, dtype=self.dtype ) return self @@ -109,7 +110,8 @@ def partial_fit(self, X): chunksize=self.chunksize, passes=self.passes, update_every=self.update_every, alpha=self.alpha, eta=self.eta, decay=self.decay, offset=self.offset, eval_every=self.eval_every, iterations=self.iterations, gamma_threshold=self.gamma_threshold, - minimum_probability=self.minimum_probability, random_state=self.random_state + minimum_probability=self.minimum_probability, random_state=self.random_state, + dtype=self.dtype ) self.gensim_model.update(corpus=X) diff --git a/gensim/test/basetmtests.py b/gensim/test/basetmtests.py index e8cb1d259d..78587c1e56 100644 --- a/gensim/test/basetmtests.py +++ b/gensim/test/basetmtests.py @@ -48,6 +48,7 @@ def test_get_topics(self): vocab_size = len(self.model.id2word) for topic in topics: self.assertTrue(isinstance(topic, np.ndarray)) - self.assertEqual(topic.dtype, np.float64) + # Note: started moving to np.float32 as default + # self.assertEqual(topic.dtype, np.float64) self.assertEqual(vocab_size, topic.shape[0]) self.assertAlmostEqual(np.sum(topic), 1.0, 5) diff --git a/gensim/test/test_atmodel.py b/gensim/test/test_atmodel.py index 5947280f59..f1d68ae7a7 100644 --- a/gensim/test/test_atmodel.py +++ b/gensim/test/test_atmodel.py @@ -541,6 +541,20 @@ def testLargeMmapCompressed(self): # test loading the large model arrays with mmap self.assertRaises(IOError, self.class_.load, fname, mmap='r') + def testDtypeBackwardCompatibility(self): + atmodel_3_0_1_fname = datapath('atmodel_3_0_1_model') + expected_topics = [(0, 0.068200842977296727), (1, 0.93179915702270333)] + + # save model to use in test + # self.model.save(atmodel_3_0_1_fname) + + # load a model saved using a 3.0.1 version of Gensim + model = self.class_.load(atmodel_3_0_1_fname) + + # and test it on a predefined document + topics = model['jane'] + self.assertTrue(np.allclose(expected_topics, topics)) + if __name__ == '__main__': logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.DEBUG) diff --git a/gensim/test/test_data/DTM/ldaseq_3_0_1_model b/gensim/test/test_data/DTM/ldaseq_3_0_1_model new file mode 100644 index 0000000000000000000000000000000000000000..c34eac22f5118b2d1dc5e303aaac6fd874f85bc9 GIT binary patch literal 320384 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≦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%0D+l?Fak=#A*9fsYU9jpKFJ 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
ceFEj2Z0bZaMKXh
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
AvH$=8

literal 0
HcmV?d00001

diff --git a/gensim/test/test_data/atmodel_3_0_1_model.expElogbeta.npy b/gensim/test/test_data/atmodel_3_0_1_model.expElogbeta.npy
new file mode 100644
index 0000000000000000000000000000000000000000..4e3098881bf491031f8ce84114d431f9b51e18bf
GIT binary patch
literal 272
zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh=
zXCxM+0{I$7ItqqHnmP)#3NXMWJ&El(f9YoXh5ZY!t*_r~&zQHwg}-i#y=+Qu*h10u
z_D@xRieCA)$6l*?C$pZ>VSBxUmrXCVZni&Qah&TSkmmZNF!Qa!8v81ixwE^&CfF<8
zam~XT9?s
zwnw3CKkQm;IF2mmgZp6mIK02!cs}2(|A!ie`$pb;6Q#L!&4`
zP#4U4H3@TQT0tom-qPw}bSzSauui$fI`b(`lq0HRrp|J$Kzym4>?8&%k$A5WcGSuW
zs*w8TsUHL_k<}49#b{}T+;1@%AuL^?@a$-sQPLWvA3F3(8%rBh&QI;Tz0X0{Gu>|ez6-v2AB{$Ch-5o65&UD9igjg`nCt}2WCk!44
rj*Og9FfSPu!pjQE4R4)pE#33R8D}{Qqqg*b=RdC07d_(1z3+YjB|K`=

literal 0
HcmV?d00001

diff --git a/gensim/test/test_data/atmodel_3_0_1_model.state b/gensim/test/test_data/atmodel_3_0_1_model.state
new file mode 100644
index 0000000000000000000000000000000000000000..d75a70aee0afdcf4861cd3814e0cc5049ec75c35
GIT binary patch
literal 980
zcmcgrX-^YT6m82=7{LX>x}fZcRx7xLM9mu$5`~F;C@vF8Q>W9Bj%ho+ohh;IiWbo*
ziUJ`D5;g&iiu+bc?)_o$UJ
z9vXxauQ9G8*9R*NPZ+|$>s>xxy28awoaE+l7X#}
zGMj4^HwGX2Z~*6=Zu-S&$m!Wjw>=zI&;({$=?Tu$GOHF1de%TA^o7y56sY~@Zk_FJy&oEE
zck?Az1{zn~J;ihNYsKEH7s^EsJ+CUqEX~srxAskG?HT+;a}3{67Do=Q57&u$$A!QV
z{IX7LI~T=YhiIHWFno*OW#jPWTCvhi_i&b`IQ?k`+igxwe%N8b&XDZp@9=pE8>$Ij
zsaP)J=U^~5K_=`9!0x{{rm82>CinudM;3B9dQY5BSlEQ-0JO*zxjQ~$sidj*YC%)!
Q)uM*N!+Qg;FBS6r0h?@Z82|tP

literal 0
HcmV?d00001

diff --git a/gensim/test/test_data/lda_3_0_1_model b/gensim/test/test_data/lda_3_0_1_model
new file mode 100644
index 0000000000000000000000000000000000000000..059dfe0d5b0e23e0589575170bc4774945d82c87
GIT binary patch
literal 4924
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
Dt4}`t

literal 0
HcmV?d00001

diff --git a/gensim/test/test_data/lda_3_0_1_model.expElogbeta.npy b/gensim/test/test_data/lda_3_0_1_model.expElogbeta.npy
new file mode 100644
index 0000000000000000000000000000000000000000..b81cca4f6b6be4878a6cb187819225542238bc67
GIT binary patch
literal 272
zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh=
zXCxM+0{I$7ItqqHnmP)#3NXNRTvb@}tnC(iu6=Xw?gP>@Pt0CaYrn-_X-dv&``9J+
zZqNBFcg`x!
za{JkViWjsc%k391d|xyFe2e{~U(+phFSOX7ekT$3d|!*b>k8J)&&xO22W~pKxOYp7
z{fr)|qSrH9?9WFXoXESU#a^%3a{`FA^w{^mWkHL*dXa|E!kAO`Hv5A4UL~Hgf2el#
JiuBrp_5c9;aQgrN

literal 0
HcmV?d00001

diff --git a/gensim/test/test_data/lda_3_0_1_model.id2word b/gensim/test/test_data/lda_3_0_1_model.id2word
new file mode 100644
index 0000000000000000000000000000000000000000..7b3193139b4005e3191b94418e917af60148881f
GIT binary patch
literal 430
zcmYLE%TB{E5KQxaw6wf0a4(l0`VHLX2XaFpaq9@h&e}0jks`sLvvnnqHI`>~XT9?s
zwnw3CKkQm;IF2mmgZp6mIK02!cs}2(|A!ie`$pb;6Q#L!&4`
zP#4U4H3@TQT0tom-qPw}bSzSauui$fI`b(`lq0HRrp|J$Kzym4>?8&%k$A5WcGSuW
zs*w8TsUHL_k<}49#b{}T+;1@%AuL^?@a$-sQPLWvA3F3(8%rBh&QI;Tz0X0{Gu>|ez6-v2AB{$Ch-5o65&UD9igjg`nCt}2WCk!44
rj*Og9FfSPu!pjQE4R4)pE#33R8D}{Qqqg*b=RdC07d_(1z3+YjB|K`=

literal 0
HcmV?d00001

diff --git a/gensim/test/test_data/lda_3_0_1_model.state b/gensim/test/test_data/lda_3_0_1_model.state
new file mode 100644
index 0000000000000000000000000000000000000000..2ca675618dcc94b5655ceeeed8ec332a91fc3b62
GIT binary patch
literal 832
zcmcgqTTc^F5Z;zc>5710RRp;xV1cAYU%Z55D-S-nhKKsHF)7Vbn4WI=4W5T{zBx1Vo%!a>3$He3m@JtNr7hh^u~14^
zT_irz)yIzN7$OMc1@J6@H>flTf?zl*G-+lwoymnX%QiykY|2ThwyoyGm~Cj5$s9YY
zIU+PSqC`_~c%elWiqNXXH2##vM8m8D5qye=^Twe~Y2{~1b&}>y@RvZ0z?m|%N8oHw
z_Q>r;=r|?Rom__Jbt+yS|MU)Y$%5=D!?_4_2jwQ0Z3=p3W@aA#<;&eqgxiwK39hp*0{wNJUb(#lR}$UzTE}=}
z=pa9Z)!Vd8Clc+BVucDrt}*l+SE)u-`dIfY;SVa%KE4^CUFiv};c}SX(@$TR_NhoE
zMn_cb3{!>P()xXkR(XzvM}g@E#1C|gJDhKW*0~3l=rfh@TkFJvgxf7x%lGA(^gth^
z)sbP4sD>qaNn7JOmL*(kqhB}htHrTRd$fp$Sny*>>YW_KGXBZXo@C?qpou59uqfeX
z$GyAw&X0={{_et!o)|B^D9zHV5jvc8aR!fZ5w|(dNjQAlk|zc&