如何从二维矩阵沿列(垂直)切片矩阵并在tensorflow中创建三维矩阵?

2024-04-26 13:45:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个张量,它是在一组运算中产生的中间结果。这是一个二维矩阵(张量),我想重塑成三维,但在一个特定的方式。我怎么能这么做

这是一个例子。K的形状=[10,12]。我想把它转换成(3x10x4)矩阵,这里我的批大小=3,序列长度=4。简言之,其实质是沿着列(垂直方向)在(3(4之前)、7(8之前)之后的位置拆分一个二维矩阵,因为我的序列长度=4),因此我们最终得到3个大小为10 X 4的矩阵,当这些矩阵组合在一起时,就变成了三维矩阵(3 X 10 X 4)。如有任何建议,我们将不胜感激

K = array([[1, 9, 5, 9, 9, 2, 0, 9, 1, 9, 0, 6],
   [0, 4, 8, 4, 3, 3, 8, 8, 7, 0, 3, 8],
   [7, 7, 1, 8, 4, 7, 0, 4, 9, 0, 6, 4],
   [2, 4, 6, 3, 3, 7, 8, 5, 0, 8, 5, 4],
   [7, 4, 1, 3, 3, 9, 2, 5, 2, 3, 5, 7],
   [2, 7, 1, 6, 5, 0, 0, 3, 1, 9, 9, 6],
   [6, 7, 8, 8, 7, 0, 8, 6, 8, 9, 8, 3],
   [6, 1, 7, 4, 9, 2, 0, 8, 2, 7, 8, 4],
   [4, 1, 7, 6, 9, 4, 1, 5, 9, 7, 1, 3],
   [5, 7, 3, 6, 6, 7, 9, 1, 9, 6, 0, 3]])

#### I am expecting it to reshaped as follows

 K_new = [ 1, 9, 5, 9, 
         0, 4, 8, 4, 
         7, 7, 1, 8, 
         2, 4, 6, 3, 
         7, 4, 1, 3, 
         2, 7, 1, 6, 
         6, 7, 8, 8, 
         6, 1, 7, 4, 
         4, 1, 7, 6, 
         5, 7, 3, 6, 

         9, 2, 0, 9, 
         3, 3, 8, 8, 
         4, 7, 0, 4, 
         3, 7, 8, 5, 
         3, 9, 2, 5,
         5, 0, 0, 3,
         7, 0, 8, 6, 
         9, 2, 0, 8,
         9, 4, 1, 5, 
         6, 7, 9, 1, 

         1, 9, 0, 6
         7, 0, 3, 8
         9, 0, 6, 4
         0, 8, 5, 4 
         2, 3, 5, 7
         1, 9, 9, 6
         8, 9, 8, 3
         2, 7, 8, 4
         9, 7, 1, 3
         9, 6, 0, 3 ]

Tags: toas方式it序列矩阵方向am