mirror of
https://github.com/SheffieldML/GPy.git
synced 2026-06-05 14:55:15 +02:00
Now also the derivative matrices can be summed.
This commit is contained in:
parent
9729a9a3a5
commit
c7a09de80c
1 changed files with 27 additions and 15 deletions
|
|
@ -577,38 +577,50 @@ class kern(Parameterized):
|
|||
def sde(self):
|
||||
# TODO: should support adding kernels together
|
||||
|
||||
#raise NameError('HiThere')
|
||||
#raise NameError('Problem')
|
||||
|
||||
# Find out state dimensions
|
||||
n = 0;
|
||||
nq = 0;
|
||||
n = 0
|
||||
nq = 0
|
||||
nd = 0
|
||||
for p in self.parts:
|
||||
(F,L,Qc,H,Pinf) = p.sde()
|
||||
n += F.shape[0]
|
||||
(F,L,Qc,H,Pinf,dF,dQc,dPinf) = p.sde()
|
||||
n += F.shape[0]
|
||||
nq += Qc.shape[0]
|
||||
nd += dF.shape[2]
|
||||
|
||||
# Allocate space for the matrices
|
||||
F = np.zeros((n,n))
|
||||
L = np.zeros((n,nq))
|
||||
Qc = np.zeros((nq,nq))
|
||||
H = np.zeros((1,n))
|
||||
Pinf = np.zeros((n,n))
|
||||
n = 0;
|
||||
nq = 0;
|
||||
F = np.zeros((n,n))
|
||||
L = np.zeros((n,nq))
|
||||
Qc = np.zeros((nq,nq))
|
||||
H = np.zeros((1,n))
|
||||
Pinf = np.zeros((n,n))
|
||||
dF = np.zeros((n,n,nd))
|
||||
dQc = np.zeros((nq,nq,nd))
|
||||
dPinf = np.zeros((n,n,nd))
|
||||
n = 0
|
||||
nq = 0
|
||||
nd = 0
|
||||
|
||||
# Assign models
|
||||
for p in self.parts:
|
||||
(Ft,Lt,Qct,Ht,Pinft) = p.sde()
|
||||
(Ft,Lt,Qct,Ht,Pinft,dFt,dQct,dPinft) = p.sde()
|
||||
F[n:n+Ft.shape[0],n:n+Ft.shape[1]] = Ft
|
||||
L[n:n+Lt.shape[0],nq:nq+Lt.shape[1]] = Lt
|
||||
Qc[nq:nq+Qct.shape[0],nq:nq+Qct.shape[1]] = Qct
|
||||
H[0,n:n+Ht.shape[1]] = Ht
|
||||
Pinf[n:n+Pinft.shape[0],n:n+Pinft.shape[1]] = Pinft
|
||||
dF[n:n+Ft.shape[0],n:n+Ft.shape[1],nd:nd+dFt.shape[2]] = dFt
|
||||
dQc[nq:nq+Qct.shape[0],nq:nq+Qct.shape[1],nd:nd+dQct.shape[2]] = dQct
|
||||
dPinf[n:n+Pinft.shape[0],n:n+Pinft.shape[1],nd:nd+dPinft.shape[2]] = dPinft
|
||||
n += Ft.shape[0]
|
||||
nq += Qct.shape[0]
|
||||
nd += dFt.shape[2]
|
||||
|
||||
return (F,L,Qc,H,Pinf)
|
||||
#self.parts[0].sde()
|
||||
return (F,L,Qc,H,Pinf,dF,dQc,dPinf)
|
||||
|
||||
# To test with only one kernel
|
||||
# return self.parts[0].sde()
|
||||
|
||||
from GPy.core.model import Model
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue