Tensorflow:创建tf.常数从变异系数

2024-05-01 22:02:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我想优化一个成本函数。此成本函数包含变量和其他非变量参数。这种非变量参数是从变量中获得的。你知道吗

以下是一个玩具示例,说明了这一点:

import numpy as np
import tensorflow as tf

r_init = np.array([5.0,6.0])

x = tf.get_variable("x_var", initializer = r_init[0], trainable = True)
y = tf.get_variable("y_var", initializer = r_init[1], trainable = True)

def cost(x,y):
    a = x
    return a*((x-1.0)**2+(y-1.0)**2)

train_op = tf.train.AdamOptimizer(learning_rate=0.05).minimize(cost(x,y))

with tf.Session() as sess:

        sess.run(tf.global_variables_initializer())

        for i in range(100):
            print(sess.run([cost(x,y), train_op]))
            print('x=', x.eval(session=sess))
            print('y=', y.eval(session=sess))

如您所见,参数a是从变量x定义的,另一方面a不应该是变量,我希望优化器将其视为常量。这个常量应该随着变量x在优化过程中的更新而更新。你知道吗

如何从变量x定义非变量参数a?我在编,但直觉上,我想到的是:

a = tf.to_constant(x)

有什么想法吗?你知道吗


Tags: 函数import参数getinittfasnp
1条回答
网友
1楼 · 发布于 2024-05-01 22:02:24

您正在寻找^{}

a = tf.stop_gradient(x)

引用文件

This is useful any time you want to compute a value with TensorFlow but need to pretend that the value was a constant.

相关问题 更多 >