繁体   English   中英

如何在张量流中替换张量的维数?

[英]How to replace a dimension of a tensor in tensorflow?

假设我的张量形状为(?,5,1,20)

对于最后一个维度的每次出现,我都会在最后一个维度上进行一些计算(获得k个最大值),从而生成较小的张量b。 如果要用b替换原始张量的最后一个维度,该怎么办?

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

您正在最后一个维度上进行一些计算...如果我理解正确的话,您想从(?,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]的过滤器对其进行破解。 做同样的事情,更有效

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM