我正在通过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
有解决方案吗? 谢谢。
答案 0 :(得分:0)
问题是将数字强制转换为complex64而不是float 64
tf.complex(1., 1.) * tf.cast(sqrt(1.), tf.complex64)**2