Ejemplo n.º 1
0
    def test_save_and_load_model(self):
        batch_size = 100

        pre_model = self.create_test_model()
        pre_model.train(iter=batch_size, burn=0)
        self.assertTrue(len(pre_model.core.trace("z_0")[:]) == batch_size)
        pre_z = [z.value for z in pre_model.variables["z"]]
        p1 = pre_model.perplexity()
        pre_model.save()

        r = self.get_resource()
        post_model = TopicModel.load(r.path)
        post_z = [z.value for z in post_model.variables["z"]]
        for i, z in enumerate(post_z):
            self.assertEqual(0, sum(z != pre_z[i]))
        p2 = post_model.perplexity()

        post_model.train(iter=batch_size, burn=0)
        self.assertTrue(len(post_model.core.trace("z_0", chain=None)[:]) == (2 * batch_size))
        self.assertEqual(p1, p2)