##「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
を入れた方が良いです。