Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何替换tensorflow中张量的维数?_Python_Tensorflow - Fatal编程技术网

Python 如何替换tensorflow中张量的维数?

Python 如何替换tensorflow中张量的维数?,python,tensorflow,Python,Tensorflow,假设我有一个形状为(?,5,1,20)的张量 对于最后一个维度的每次出现,我都会在最后一个维度上进行一些计算(得到k max值),从而产生一个较小的张量b。如果我想用b替换原始张量的最后一个维度,我该怎么办 我应该走什么(最好是纯张量流)路径?你在做最后一个维度的计算……如果我理解正确,你想从(?,5,1,20)->(?,5,1,b)开始 什么样的计算 你可以重塑你的张量,进行计算(比如矩阵乘法),然后重塑回来 a = tf.reshape(X, [-1, 20]) a = tf.matmul(

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

对于最后一个维度的每次出现,我都会在最后一个维度上进行一些计算(得到k max值),从而产生一个较小的张量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]的过滤器对其进行破解。如果我理解正确的话,你想从(?,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]的过滤器对其进行破解。做同样的事情,效率更高