您能直观地解释或提供有关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