我在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])
的事情来提取重复的序列。