以整洁的方式移动TensorFlow Variable中的数据数组元素



我在TensorFlow中有一组变量,比如x1, x2,..., x9
我试图以这样一种方式转移变量的数据,即x(i+1)转移到x(i),最终x1丢失,x9是一样的。我尝试的是创建一个使用 tf.assign() 的移位操作字典,它有效但速度很慢。

我想做的一种方法是制作一个Variable数组,然后使用 tf.gather()tf.scatter_update() 在数组本身中移动,但它将再次变得一团糟,因为需要大量操作。

我想知道在TensorFlow中是否有一种很好的方法来做到这一点。我正在思考的另一种方法是重命名我认为不可能的变量。

初始代码:

    #some tf.Variables are defined from n1 to n9 and assigned some values.
    k={}
    for i in range(1,10):             
        k[i]=tf.assign(n[i],n[i+1])   
    tf.initialize_all_variables().run()
    for j in range(1,10):
        sess.run(k[j]) 

您是否考虑过将代码重写为切片操作序列?一般来说,如果您可以将需要做的事情表达为对不可变对象的一系列操作,而不是更改变量,则 TensorFlow 效果最佳。你会做一些类似tf.slice(n0, [1], [-1])的事情来提取重复的序列。

最新更新