我是tensorflow的新手,尝试了解如何在机器学习上下文之外使用。我想使用tensorflow的ADAM实现来优化python函数。
假设我具有以下功能:
def fun_test(x):
"""
:param x: List of parameters, e.g. [1,2,3]
:return: real value
"""
res=do_something(x)
return res
当使用scipy时,我会调用“ scipy.minimize(fun_test,x0,method =“ Nelder-Mead”)“。我该如何用张量流做到这一点?
最好,
麦可
最佳答案
您需要重写函数do_something
以将张量用作输入并返回标量张量(即创建计算图)。然后,以下代码是如何对函数执行优化的草图。 (顺便说一句,在您的代码fun_test
和do_something
中没有真正的区别,因此我选择了后者)。
x = tf.get_variable("x", dtype=..., initializer=...)
target = do_something(x)
opt = tf.train.AdamOptimizer(...).minimize(target) # Defines one optimization step
with tf.Session() as sess:
sess.run(tf.global_variables_initializer()) # Initialize x
NUM_STEPS = 1000
for _ in range(NUM_STEPS):
sess.run(opt) # Run optimization for NUM_STEPS steps
print(sess.run(x)) # Show values of x
print(sess.run(target)) # Show target value
关于python - 使用Tensorflow优化python中的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56741931/