我对ML和该论坛都是陌生的,所以请保持友好。
我想计算的是VAE w.r.t.解码器部分的雅各布。潜在向量。我在tensorflow.python.ops.parallel_for.gradients中找到了jacobian_batch函数,原则上可以为我完成工作。但是,我无法使用此功能。 更具体地说,我尝试过:
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)
哪个不起作用(返回无形状),而:
f_of_xin = tf.sin(tf.sin(xin))
jac = batch_jacobian(f_of_xin,xin)
有效(返回一个3x3矩阵(输入和输出暗淡的数量= 3),并带有有意义的数字。 我尝试过:
f_of_xin = tf.sin(tf.sin(tf.constant(tf.Session().run(xin))))
同样,在这种情况下,jacobian_batch函数不再起作用(这意味着它返回None形状)。我想这与数据转换有关,但是我不知道如何将tf结构提供给model.predict函数。顺便说一下,我的模型(解码器)只是一个具有1个隐藏层的简单神经网络。你能帮我吗?
亲切的问候,
梅丽莎