Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Numpy 如何将函数应用于张量的值,然后将输出赋给同一张量_Numpy_Tensorflow - Fatal编程技术网

Numpy 如何将函数应用于张量的值,然后将输出赋给同一张量

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

我想将网络的更新权重(在执行优化后)投影到一个特殊的空间,在这个空间中我需要传递张量的值。应用投影的函数获取一个numpy数组作为输入。我有办法做到这一点吗

我使用tf.assign()作为解决方案,但由于我的函数接受数组而不是张量,所以失败了

下面是我想做的一个草图:

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

我想使用的函数在另一个库中,它获取一个实数组作为输入,而不是张量。