「Pythonで体験するベイズ推論」を始めるときにはまったところ。
「Pythonで体験するベイズ推論」を読み始めました。
動かすまでに少しはまったところをメモしておきます。
pymcを入れるのですが、今はpymc4になっています。
書籍のgithubを確認すると、
https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers
pymc2とpymc3のスクリプトが載っているので、本を読むときはpymc3をインストールして、gitの中にあるpymc3用のスクリプトを見るようにする。
必要なライブラリーは、pymc3とバックエンドのtheanoになります。
pip install pymc3
いろいろやったけど、何も入れずに、最初に、このpipのみで全部インストールされます。
基本的に、このpymc3をインストールすると、必要なtheanoがインストールされます。
thenoはpymc3の後ろで動くバックエンドになります。
後、必要なjupyternotebookを入れます。
pip install jupyter
一応これで、第一章は動きます。warningを吐きまくりますが、一応動くので大丈夫です。
次に、僕は、好きなspyderも入れました。
spyderで動かすときは、ここがはまります。
jupyterのCh1_Introduction_PyMC3.ipynbの中のセルのin10で、このままspyderで動かすと、ここでエラーが起きます。
# これで動かすと、エラーが出ました。
with model:
step = pm.Metropolis()
trace = pm.sample(10000, tune=5000,step=step)
エラーの理由は、マルチコアの設定がなんかうまく動かないようです。
ここは、このように直します。
with model:
step = pm.Metropolis()
trace = pm.sample(10000, tune=5000,step=step , cores = 1)
とりあえずcores=1で、シングルコアで動かせば動きます。ここを2とか4とか入れるとエラーが出ますが、なんか動いて、強制終了すると結果が出ます。普通に動かすときは1を設定しましょう。
jupyternotebookで動くけど、spyderでエラーが出る理由はわかりません。
今後は、pymc4でtensorflowがバックエンドになるそうですが、この書籍の場合はpymc3を入れた方が良いです。