如何计算tfd.Normal(0,1)* x + tfd.Norma(2,3)

时间:2019-05-15 02:44:30

标签: tensorflow-probability

我正在尝试构建具有以下结构的贝叶斯神经网络:
y1 = w11 x11 w12 x12 + b1

y2 = w2 y1 + b2

w11, w12, b1, w2, b2 ~ N(0,1)
x11, x12是变量tf.float32

w11 = tfd.Norma(0,1)  
w12 = tfd.Norma(0,1)  
b1 = tfd.Normal(0,1)  
y1 = w11 x11 + w12 x12 + b1

如何获得随机变量y1?

我已经尝试过edward2,但我想实现自己的变体推断方法版本。所以我决定自己实施


    W = tf.cast(np.random.rand(3,2), dtype=tf.float32)
    X = tfp.distributions.Normal([[1,2,3],[2,2,3]],[[3,4,5],[5,6,7]])
    b = tfp.distributions.Normal([[1,2],[2,2]],[[3,4],[5,6]])
    y = tf.add(tf.matmul(W,X) + b)

我对y的预期结果应该是一个随机变量〜正常

我明白了

TypeError: Failed to convert object of type <class 'tensorflow_probability.python.distributions.normal.Normal'> to Tensor. Contents: tfp.distributions.Normal("Normal_6/", batch_shape=(2, 3), event_shape=(), dtype=float32). Consider casting elements to a supported type.

0 个答案:

没有答案