小编tur*_*ing的帖子

在python中导入一个带参数的模块

是否可以在python中传递带有一些参数的模块?

所有我的意思是参数是模块中存在一个未在该模块中初始化的变量,我仍然在该模块中使用该变量.简而言之,我希望行为类似于函数,但与函数不同,我希望模块的变量在调用代码中公开.

例如

a.py

#lists like data, count, prob_distribution are constructed from training_pool (not initialized in this file)
x = pymc.Uniform('x', lower = 0, upper = 1)
rv = [ Multinomial("rv"+str(i), count[i], prob_distribution[i], value = data[i], observed=True) for i in xrange(0, len(count)) ]
Run Code Online (Sandbox Code Playgroud)

b.py

import a  #I want some way tr pass value of training_pool
m = pymc.MCMC(a)
Run Code Online (Sandbox Code Playgroud)

我希望a.py中的所有随机变量都暴露给MCMC.我对我手头的问题采取了更好的方法,但我也想知道在python中是否可以传递模块的参数

python python-module python-import mcmc pymc

12
推荐指数
4
解决办法
1万
查看次数

pymc MAP警告:随机tau的值既不是数值也不是具有浮点dtype的数组.推荐拟合方法fmin(默认)

我在这里看了一个类似的问题

pymc警告:value既不是数字也不是带有浮点dtype的数组

但是没有答案,有人可以告诉我是否应该忽略这个警告或者做什么呢?

该模型具有随机变量(等等)tau,其是DiscreteUniform

以下是该模型的相关代码:

tau = pm.DiscreteUniform("tau", lower = 0, upper = n_count_data)
lambda_1 = pm.Exponential("lambda_1", alpha)
lambda_2 = pm.Exponential("lambda_2", alpha)
print "Initial values: ", tau.value, lambda_1.value, lambda_2.value

@pm.deterministic
def lambda_(tau = tau, lambda_1 = lambda_1, lambda_2 = lambda_2):
    out = np.zeros(n_count_data)
    out[:tau] = lambda_1
    out[tau:] = lambda_2
    return out

observation = pm.Poisson("obs", lambda_, value = count_data, observed = True)
model = pm.Model([observation, lambda_1, lambda_2, tau]);
m = pm.MAP(model)                    # **This line caueses error**
print …
Run Code Online (Sandbox Code Playgroud)

bayesian stochastic mcmc pymc

5
推荐指数
1
解决办法
172
查看次数