[英]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.