您能直观地解释或提供有关tf.gather_nd
在Tensorflow中对高维张量进行索引和切片的更多示例吗?
我阅读了API,但它保持非常简洁,我发现自己很难遵循函数的概念.
我有一个模型,M1
其数据输入是一个占位符M1.input
,其权重得到了训练。我的目标是要建立一个新的模式M2
,其计算输出o
的M1
从输入(其训练的权重)w
的形式tf.Variable
(而不是喂养实际值M1.input
)。换句话说,我将训练后的模型M1
用作黑盒函数来构建新模型o = M1(w)
(在我的新模型中,w
需要学习,并且其权重M1
固定为常量)。问题在于,M1
仅接受M1.input
需要输入实际值的输入作为输入,而不接受tf.Variable这样的输入w
。
作为一个天真的解决方案来构建M2
,我可以手动生成M1
内M2
然后初始化M1
与预受训值的权重,使他们不内可训练M2
。但是,在实践中,这M1
很复杂,我不想在中手动M1
重新构建M2
。我要寻找一个更好的解决方案,像一个解决方法或直接的解决方案,以取代输入占位符的东西M1.input
中M1
有tf.Variable w
。
感谢您的时间。
我有两个以下的张量(注意,它们都 Tensorflow张量,这意味着他们仍然当时我构建了以下切片运算实际上象征之前,我推出tf.Session()
):
params
:有形状(64,784,256) indices
:有形状(64,784) 我想构造一个返回以下张量的op:
output
:有形状(64,784)在哪里output[i,j] = params_tensor[i,j, indices[i,j] ]
Tensorflow中最有效的方法是什么?
ps:我试过tf.gather
但是无法利用它来执行我上面描述的操作.
非常感谢.
-Bests