【发布时间】:2017-02-27 06:19:07
【问题描述】:
令z是复变量,C(z)是它的共轭。 在复分析理论中,C(z) w.r.t z的导数是不存在的。但是在 tesnsorflow 中,我们可以计算 dC(z)/dz,结果只是 1。 这是一个例子:
x = tf.placeholder('complex64',(2,2))
y = tf.reduce_sum(tf.conj(x))
z = tf.gradients(y,x)
sess = tf.Session()
X = np.random.rand(2,2)+1.j*np.random.rand(2,2)
X = X.astype('complex64')
Z = sess.run(z,{x:X})[0]
输入X是
[[0.17014372+0.71475762j 0.57455420+0.00144318j]
[0.57871044+0.61303568j 0.48074263+0.7623235j ]]
结果Z是
[[1.-0.j 1.-0.j]
[1.-0.j 1.-0.j]]
我不明白为什么渐变设置为1? 而且我想知道tensorflow 是如何处理复杂梯度的。
【问题讨论】:
-
我猜这是不支持的。您的工作需要此功能吗?
标签: tensorflow autodiff