4
피클 백엔드를 사용하더라도 파이썬에서 MCMC 용으로 명백하게 간단한 코드는 거대한 메모리 사용량 (> 15GB)을 발생시킵니다. 이것은 pymc에서 관찰 된 변수의 배열을 사용할 때마다 발생합니다. 왜 이런 일이 벌어지고 있는지에 대한 아이디어가 있습니까?pymc를 사용하여 파이썬에서 메모리 오버 플로우
개인적인 경험에서import pymc as pymc
import numpy as np
N = 17
numC = 5
A = np.zeros([N,N])
A[0:numC, :] = 1
A[:, 0:numC] = 1
C = pymc.Beta('C', alpha=0.5, beta=0.5, size=N)
@pymc.deterministic(dtype=float)
def q(_C=C):
Q = np.zeros([N,N])
for i in range(0,N-1):
for j in range(i+1, N):
Q[i, j] = Q[j, i] = C[i] + C[j] - C[i]*C[j]
return Q
obs = []
for i in range(0,N-1):
for j in range(i+1, N):
o = pymc.Bernoulli('A%d%d'%(i,j), p=q[i,j], value=A[i,j], observed=True)
obs.append(o)
model = pymc.Model([C, q] + obs)
mcmc = pymc.MCMC(model, db='pickle', dbname='abc.pickle')
mcmc.sample(10000, burn=5000, thin=5)
mcmc.db.close()
비슷한 문제가 있습니다. Github에 게시했습니다 (지원을 요청하는 가장 좋은 장소 인 것처럼 보이지만) 행운이 없습니다. 이 문제를 해결할 수 있었습니까? – analystic
기회가 없습니다. 죄송합니다 – ahmethungari
그냥 발언, 귀하의 q를 함수에 당신은 매개 변수 _C라는 이름을 지정하지만 C –