VAE中解码器的雅可比矩阵

2022-01-18 23:36:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我是新的ML和这个论坛,所以请善待。你知道吗

我想计算的是VAE的解码器部分的雅可比矩阵,即潜在向量。我在中找到了jacobian\u批函数tensorflow.python.ops文件.平行_对于坡度原则上可以帮我做这项工作。但是,我无法让这个函数工作。 更具体地说,我试着:

xin = tf.constant(np.array(latent_vector[2]),dtype=tf.float32)
f_of_xin = tf.constant(decoder.predict(tf.Session().run(xin), batch_size = 1000000, verbose=1),dtype=tf.float32) 
jac = batch_jacobian(f_of_xin,xin)

不起作用(返回None shape),而:

f_of_xin = tf.sin(tf.sin(xin))
jac = batch_jacobian(f_of_xin,xin)

工作(返回一个3x3矩阵(#of input&output dim=3)和合理的数字)。 我试过:

f_of_xin = tf.sin(tf.sin(tf.constant(tf.Session().run(xin))))

同样,在这种情况下,jacobian\u批处理函数不再工作(这意味着它返回一个None形状)。我想这与数据转换有关,但我不知道如何将tf结构提供给模型.预测功能。顺便说一下,我这里的模型(解码器)只是一个简单的神经网络,有一个隐藏层。你能帮我吗?你知道吗

谨致问候

梅丽莎