2017-02-01 112 views
0

说我有具有形状(?,5,1,20)如何替换张量流中张量的维数?

张量在过去的尺寸我上产生更小的张量b中的最后一维做一些计算(获得第k最大值)的每次出现。如果要用b替换原始张量的最后一个维度,我该怎么办?

我应该采用什么(最好是纯张量流)路径?

回答

1

你正在做最后一维的计算......如果我理解正确的话,那你想从(?,5,1,20) - >(?,5,1,b)

什么样的计算?

你可以重塑你的张量,做计算(如矩阵乘法)并重新塑形。

a = tf.reshape(X, [-1, 20]) 
a = tf.matmul(a, X) 
a = tf.reshape(a, [-1, b]) 

或者您可以使用tf.einsum()来实现类似的壮举。对于非线性计算取决于你想要做什么。编辑: 你也可以用Conv2D破解它,并使用大小[1,1,20,b]的滤镜。做同样的事情,更有效率

相关问题