如何解决Sympy Solve是否与tensorflow GradientTape兼容?
我想使用sympy求解来求解Vo的p,这是一种无需初始值即可求解方程的算法。然后,我想使用TensorFlow的自动微分来找到Vo的p的导数。我在下面编写了代码,该值计算正确。但是,最后无法将其转换为tensorflow dtype。有没有办法使用与sympy兼容的TensorFlow张量?
from sympy import solve,Symbol,re
import tensorflow as tf`
class Concentrate_calculator:
def __init__(self,k,k1,m):
self.k=k
self.k1=k1
self.m=m
def calp(self,Vo):
p=Symbol('p')
equation = k1*m/(p+k1)+k/p-2*Vo-p
solution = solve(equation,p)
p=float(re(solution[2]))
return p
k=10.0**15
k1=10.0**9.5
m=10.0**19.2
cal = Concentrate_calculator(k,m)
Vo = tf.Variable(1e18)
#Vo=1e18
with tf.GradientTape() as t:
t.watch(Vo)
p=cal.calp(Vo)
dpdVo = t.gradient(p,Vo)
print(dpdVo)
TypeError:无法将值21897084140.095097转换为TensorFlow DType。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。