4
По-видимому, простой код для MCMC в Python вызывает огромное использование памяти (> 15 ГБ), хотя я использую брандмауэр. Это происходит всякий раз, когда я использую массивы наблюдаемых переменных в pymc. Любая идея о том, почему это происходит?переполнение памяти в Python с использованием 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 –