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

时间:2017-02-01 22:57:28

标签: python tensorflow

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

对于最后一个维度的每次出现,我在产生较小张量b的最后一个维度上进行一些计算(得到k max值)。如果想用b替换原始张量的最后一个维度,我该怎么办?

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

1 个答案:

答案 0 :(得分:1)

你正在对最后一个维度进行一些计算......那就是你想要从(?,5,1,20)开始 - > (?,5,1,b)如果我理解正确的话?

什么样的计算?

你可以重塑你的张量,进行计算(例如矩阵乘法)并重新塑造。

 var gdata1 = {};
 var gdata2 = {};
 function loadData(file) {
   d3.csv(file, function (d){...}, 
        function (data) {gdata = data; displayData(gdata)});


}

或者您可以使用a = tf.reshape(X, [-1, 20]) a = tf.matmul(a, X) a = tf.reshape(a, [-1, b]) 来实现类似的壮举。对于非线性计算,取决于您想要做什么。

编辑: 你也可以用Conv2D破解它并使用大小为[1,1,20,b]的过滤器。做同样的事情并且更有效率