PyMCからPyMC3にthis codeを翻訳してPyMC3から始めます。変数を列挙する(PyMCをPyMC3に移植する)
私はこのセグメントを翻訳するかどうかはわかりません。
v = pymc.Beta('v', alpha=1, beta=alpha, size=N_dp)
@pymc.deterministic
def p(v=v):
""" Calculate Dirichlet probabilities """
# Probabilities from betas
# this line creates the error:
value = [u*np.prod(1-v[:i]) for i,u in enumerate(v)]
# Enforce sum to unity constraint
value[-1] = 1-sum(value[:-1])
return value
z = pymc.Categorical('z', p, size=len(set(counties)))
私はp(v)
と最後の行にp
を交換し、@pymc.deterministic
を削除する必要がありますが、問題は、私はを列挙することができないということのようだと仮定v
:ValueError: length not known: ViewOp [id A] 'v'
。
翻訳のやり方や、ドキュメントの関連するビットへのリンク方法を教えていただけますか?ありがとう。
、私は 'v'からそれを作ることによって、変数[値]を作成できることがわかりましたリスト内包表記の代わりにテンソルを使用: def stick_breaking(ベータ): part_remaining = tt.concatenate([[1]、tt.extra_ops.cumprod(1 - v)[:-1]]) 値= v * part_remaining 戻り値 ' – Smind