Numpy 如何将函数应用于张量的值,然后将输出赋给同一张量
我想将网络的更新权重(在执行优化后)投影到一个特殊的空间,在这个空间中我需要传递张量的值。应用投影的函数获取一个numpy数组作为输入。我有办法做到这一点吗 我使用tf.assign()作为解决方案,但由于我的函数接受数组而不是张量,所以失败了 下面是我想做的一个草图:Numpy 如何将函数应用于张量的值,然后将输出赋给同一张量,numpy,tensorflow,Numpy,Tensorflow,我想将网络的更新权重(在执行优化后)投影到一个特殊的空间,在这个空间中我需要传递张量的值。应用投影的函数获取一个numpy数组作为输入。我有办法做到这一点吗 我使用tf.assign()作为解决方案,但由于我的函数接受数组而不是张量,所以失败了 下面是我想做的一个草图: W = tf.Variable(...) ... opt = tf.train.AdamOptimizer(learning_rate).minimize(loss, var_list=['W']) W = my_functio
W = tf.Variable(...)
...
opt = tf.train.AdamOptimizer(learning_rate).minimize(loss, var_list=['W'])
W = my_function(W)
似乎
tf.control\u dependencies
是您所需要的
一个简单的exmaple:
import tensorflow as tf
var = tf.get_variable('var', initializer=0.0)
# replace `tf.add` with your custom function
addop = tf.add(var, 1)
with tf.control_dependencies([addop]):
updateop = tf.assign(var, addop)
config = tf.ConfigProto()
config.gpu_options.allow_growth = True # pylint: disable=no-member
with tf.Session(config=config) as sess:
sess.run(tf.global_variables_initializer())
updateop.eval()
print(var.eval())
updateop.eval()
print(var.eval())
updateop.eval()
print(var.eval())
输出:
1.0
2.0
3.0
我想使用的函数在另一个库中,它获取一个实数组作为输入,而不是张量。