コード例 #1
0
ファイル: multivariate.py プロジェクト: chadheyne/pymc
    def logp(X):
        IVI = det(V)
        return bound(
            ((n - p - 1) * log(IVI) - trace(solve(V, X)) -
             n * p * log(
             2) - n * log(IVI) - 2 * multigammaln(p, n / 2)) / 2,

            n > p - 1)
コード例 #2
0
ファイル: kalman.py プロジェクト: mrocklin/ape
import theano
import theano.sandbox.linalg as linalg

mu = theano.tensor.matrix('mu')
Sigma = theano.tensor.matrix('Sigma')
H = theano.tensor.matrix('H')
R = theano.tensor.matrix('R')
data = theano.tensor.matrix('data')

dot = theano.tensor.dot

A = dot(Sigma, H.T); A.name = 'A'
B = R + dot(H, dot(Sigma, H.T)); B.name = 'B'

new_mu    = mu + dot(A, linalg.solve(B, dot(H, mu) - data))
new_mu.name = "updated_mu"
new_Sigma = Sigma - dot(dot(A, linalg.solve(B, H)), Sigma)
new_Sigma.name = "updated_Sigma"

inputs = [mu, Sigma, H, R, data]
outputs = [new_mu, new_Sigma]

theano.gof.graph.utils.give_variables_names(
        theano.gof.graph.variables(inputs, outputs))

n = 500
input_shapes = {mu:     (n, 1),
                Sigma:  (n, n),
                H:      (n, n),
                R:      (n, n),
                data:   (n, 1)}