Skip to content

Commit 7592f06

Browse files
Christopher Fonnesbecktwiecki
authored andcommitted
advi returns namedtuple
1 parent 197b8f6 commit 7592f06

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

pymc3/variational/ADVI.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,14 @@
1313
from theano.tensor import exp, concatenate, dvector
1414
import theano.tensor as T
1515
from theano.sandbox.rng_mrg import MRG_RandomStreams
16-
from collections import OrderedDict
16+
from collections import OrderedDict, namedtuple
1717

1818
from ..progressbar import progress_bar
1919

2020
__all__ = ['advi']
2121

22+
ADVIFit = namedtuple('ADVIFit', 'means, stds, elbo_vals')
23+
2224
def advi(vars=None, start=None, model=None, n=5000, progressbar=True,
2325
learning_rate=.001, epsilon=.1):
2426
model = modelcontext(model)
@@ -51,7 +53,7 @@ def advi(vars=None, start=None, model=None, n=5000, progressbar=True,
5153
# w is in log space
5254
for var in w.keys():
5355
w[var] = np.exp(w[var])
54-
return u, w, elbos
56+
return ADVIFit(u, w, elbos)
5557

5658
def run_adagrad(uw, grad, elbo, inarray, n, learning_rate=.001, epsilon=.1, progressbar=True):
5759
shared_inarray = theano.shared(uw, 'uw_shared')
@@ -67,10 +69,10 @@ def run_adagrad(uw, grad, elbo, inarray, n, learning_rate=.001, epsilon=.1, prog
6769
progress = progress_bar(n)
6870

6971
# Run adagrad steps
70-
elbos = []
72+
elbos = np.empty(n)
7173
for i in range(n):
7274
uw_i, g, e = f()
73-
elbos.append(e)
75+
elbos[i] = e
7476
if progressbar:
7577
progress.update(i)
7678

0 commit comments

Comments
 (0)