1

我正在尝试构建具有以下结构的贝叶斯神经网络:
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.
4

0 回答 0