def run(self, options): if os.path.exists(options.model): print 'Loading model snapshot from %s' % options.model model = VEMModel.load(options.model) else: # Initialize a model from scratch print 'Initializing new model' reader = CorpusReader(options.corpus, data_series='sam') model = VEMModel(reader=reader, T=options.T) while model.iteration < options.iterations: print '** Iteration %d **' % model.iteration model.run_one_iteration() if model.iteration % SAVE_MODEL_INTERVAL == 0: print 'Saving model snapshot...' model.save(options.model) if model.iteration % SAVE_TOPICS_INTERVAL == 0: if options.write_topics: print 'Saving topics to %s' % options.write_topics with open(options.write_topics, 'w') as f: model.write_topics(f) if options.write_topic_weights: print 'Saving topic weights to %s' % options.write_topic_weights with open(options.write_topic_weights, 'w') as f: model.write_topic_weights_arff(f) if options.write_topics: print 'Saving topics to %s' % options.write_topics with open(options.write_topics, 'w') as f: model.write_topics(f) if options.write_topic_weights: print 'Saving topic weights to %s' % options.write_topic_weights with open(options.write_topic_weights, 'w') as f: model.write_topic_weights_arff(f) model.save(options.model)
import numpy as np from math_util import avk, deriv_avk from optimize import check_grad from corpus.corpus import CorpusReader from vem.model import VEMModel CORPUS_FILENAME = 'nips-425D.h5' reader = CorpusReader(CORPUS_FILENAME, data_series='sam') model = VEMModel(reader) while True: model.run_one_iteration() model.print_topics() def check_grads(model): assert np.isfinite(model.l_alpha()) assert np.isfinite(model.l_valpha()) x = model.grad_l_vmu() assert np.isfinite(x).all() import pdb try: # Main update rules print 'xi update:', check_grad(model, 'xi', model.l_xi, model.grad_l_xi) print 'valpha update:', check_grad(model, 'valpha', model.l_valpha, model.grad_l_valpha)
import numpy as np from math_util import avk, deriv_avk from optimize import check_grad from corpus.corpus import CorpusReader from vem.model import VEMModel CORPUS_FILENAME = 'nips-425D.h5' reader = CorpusReader(CORPUS_FILENAME, data_series='sam') model = VEMModel(reader) while True: model.run_one_iteration() model.print_topics() def check_grads(model): assert np.isfinite(model.l_alpha()) assert np.isfinite(model.l_valpha()) x = model.grad_l_vmu() assert np.isfinite(x).all() import pdb try: # Main update rules print 'xi update:', check_grad(model, 'xi', model.l_xi, model.grad_l_xi) print 'valpha update:', check_grad(model, 'valpha', model.l_valpha, model.grad_l_valpha) print 'alpha update:', check_grad(model, 'alpha', model.l_alpha, model.grad_l_alpha)