オーストラリアで勉強してきたMLデザイナーの口語自由詩

主に、データ分析・機械学習・ベイズ・統計について自由に書く。

biwrapを使用したinline関数 [e334115, d07338e, 93bc07b] - pymc4のソースコード読んでみた

f:id:yukinagae:20171122095115p:plain

TL;DR

コミット

2018/06/09から2018/06/11の間のコミットです。

inline - pymc4/model/base.py

model.define を常に呼ぶようにwrapしたアノテーションのようです。 define メソッドのの中身はおそらく初期化処理等と推測できます( Model クラス内の処理についてはまだ読んでいないのでよくわかかっていません)。

@biwrap.biwrap
def inline(f, **kwargs):
    model = Model(**kwargs)
    model.define(f)
    return model
  • 使い方: tests/test_model.py 参照

以下にある通り、まずはテスト実行時のヘルパー関数のように使用していることがわかります。

def test_testvalue():
    @pm.inline
    def model(cfg):
        ed.Normal(0., 1., name='normal')

参考資料