Python Tensorflow复数运算

时间:2018-07-23 14:56:29

标签: python python-3.x tensorflow

我正在通过Edward(1.3.5)和Tensorflow(1.6.0,-gpu版本)进行建模和变量推断。但是,当尝试使用复数执行某些操作时,发生错误“ ValueError:张量转换请求具有dtype float32的Tensor的dtype complex64”。这是一个简化的示例,但也会导致相同的错误:

import tensorflow as tf
tf.complex(1., 1.) * tf.sqrt(1.)**2

似乎complex和sqrt结果之间的dtype冲突吗? 此外,我还尝试将sqrt的结果转换为float64,但收到一些错误:

tf.complex(1., 1.) * tf.cast(sqrt(1.), tf.float64)**2

有解决方案吗? 谢谢。

1 个答案:

答案 0 :(得分:0)

问题是将数字强制转换为complex64而不是float 64

tf.complex(1., 1.) * tf.cast(sqrt(1.), tf.complex64)**2