コード例 #1
0
    def test_no_conditioning(self, joint_distribution):
        model = joint_distribution([
            tfd.Normal(1., 1.),
            tfd.Normal(3., 2.), lambda b, a: tfd.Normal(a + b, 5.)
        ])

        approx = rethinking.quap(model)
        self.assertAllCloseNested(approx.mean(), [1., 3., 4.])

        self.assertAllCloseNested(approx.stddev(), [1., 2., 30**0.5])
コード例 #2
0
    def test_no_conditioning(self, joint_distribution):
        model = joint_distribution({
            'a': tfd.Normal(1., 1.),
            'b': tfd.Normal(3., 2.),
            'c': lambda a, b: tfd.Normal(a + b, 5.)
        })

        approx = rethinking.quap(model)
        self.assertAllCloseNested(approx.mean(), dict(a=1., b=3., c=4.))

        self.assertAllCloseNested(approx.stddev(), dict(a=1., b=2., c=30**0.5))
コード例 #3
0
    def test_no_conditioning(self, joint_distribution):
        ModelSpec = collections.namedtuple('ModelSpec', 'a,b,c')
        model = joint_distribution(
            ModelSpec(a=tfd.Normal(1., 1.),
                      b=tfd.Normal(3., 2.),
                      c=lambda a, b: tfd.Normal(a + b, 5.)))

        approx = rethinking.quap(model)
        self.assertAllCloseNested(approx.mean(), ModelSpec(a=1., b=3., c=4.))

        self.assertAllCloseNested(approx.stddev(),
                                  ModelSpec(a=1., b=2., c=30**0.5))
コード例 #4
0
    def test_conditioning(self, joint_distribution):
        model = joint_distribution(
            [tfd.Normal(1., 2.), lambda a: tfd.Normal(2 * a + 1., 5.)])

        approx = rethinking.quap(model,
                                 data=[None, 2.],
                                 initial_position=[1.5])

        dists, _ = approx.sample_distributions()
        # See, e.g., Bishop, equation 2.116
        self.assertAllClose(dists[0].mean(), 33. / 41.)
        self.assertAllClose(dists[0].stddev(), (100. / 41.)**0.5)
コード例 #5
0
ファイル: quap_test.py プロジェクト: tensorflow/probability
  def test_conditioning(self, joint_distribution):
    model = joint_distribution({
        'a': tfd.Normal(1., 2.),
        'b': lambda a: tfd.Normal(2 * a + 1., 5.)})

    approx = rethinking.quap(model,
                             data={'b': 2.},
                             initial_position={'a': 1.5})

    dists, _ = approx.sample_distributions()
    # See, e.g., Bishop, equation 2.116
    self.assertAllClose(dists['a'].mean(), 33. / 41.)
    self.assertAllClose(dists['a'].stddev(), (100. / 41.) ** 0.5)
コード例 #6
0
ファイル: quap_test.py プロジェクト: tensorflow/probability
  def test_conditioning(self, joint_distribution):
    ModelSpec = collections.namedtuple('ModelSpec', 'a,b')
    model = joint_distribution(ModelSpec(
        a=tfd.Normal(1., 2.),
        b=lambda a: tfd.Normal(2 * a + 1., 5.)))

    approx = rethinking.quap(model,
                             data=ModelSpec(a=None, b=2.),
                             initial_position=ModelSpec(a=1.5, b=None))

    dists, _ = approx.sample_distributions()
    # See, e.g., Bishop, equation 2.116
    self.assertAllClose(dists.a.mean(), 33. / 41.)
    self.assertAllClose(dists.a.stddev(), (100. / 41.) ** 0.5)