我是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_testdo_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/

10-11 01:53