相對位置2d矩陣和kron運算的思考

文章目錄

  • 1. 相對位置矩陣2d
  • 2. kron運算

1. 相對位置矩陣2d

在swin-transformer中,我們會計算每個patch之間的相對位置,那么我們看到有一連串的拉伸和相減,直接貼代碼:

import torch
import torch.nn as nntorch.set_printoptions(precision=3, sci_mode=False,threshold=torch.inf)if __name__ == "__main__":run_code = 2x_len = 5y_len = 5x_tensor = torch.arange(x_len)y_tensor = torch.arange(y_len)x_meshgrid, y_meshgrid = torch.meshgrid(x_tensor, y_tensor)print(f"x_tensor=\n{x_tensor}")print(f"y_tensor=\n{y_tensor}")print(f"x_meshgrid=\n{x_meshgrid}")print(f"x_meshgrid.shape=\n{x_meshgrid.shape}")print(f"y_meshgrid.shape=\n{y_meshgrid.shape}")print(f"y_meshgrid=\n{y_meshgrid}")stack_meshgrid = torch.stack(torch.meshgrid(x_tensor, y_tensor))print(f"stack_meshgrid.shape=\n{stack_meshgrid.shape}")print(f"stack_meshgrid=\n{stack_meshgrid}")stack_meshgrid_flatten = torch.flatten(stack_meshgrid, 1)print(f"stack_meshgrid_flatten.shape=\n{stack_meshgrid_flatten.shape}")print(f"stack_meshgrid_flatten=\n{stack_meshgrid_flatten}")stack_meshgrid_flatten_1 = stack_meshgrid_flatten[:, None, :]stack_meshgrid_flatten_2 = stack_meshgrid_flatten[:, :, None]relative_coords_bias = stack_meshgrid_flatten_2 - stack_meshgrid_flatten_1print(f"stack_meshgrid_flatten_1=\n{stack_meshgrid_flatten_1}")print(f"stack_meshgrid_flatten_2=\n{stack_meshgrid_flatten_2}")print(f"relative_coords_bias=\n{relative_coords_bias}")relative_coords_bias[0, :, :] += x_lenrelative_coords_bias[1, :, :] += y_lenprint(f"relative_coords_bias=\n{relative_coords_bias}")
  • result:
x_tensor=
tensor([0, 1, 2, 3, 4])
y_tensor=
tensor([0, 1, 2, 3, 4])
x_meshgrid=
tensor([[0, 0, 0, 0, 0],[1, 1, 1, 1, 1],[2, 2, 2, 2, 2],[3, 3, 3, 3, 3],[4, 4, 4, 4, 4]])
x_meshgrid.shape=
torch.Size([5, 5])
y_meshgrid.shape=
torch.Size([5, 5])
y_meshgrid=
tensor([[0, 1, 2, 3, 4],[0, 1, 2, 3, 4],[0, 1, 2, 3, 4],[0, 1, 2, 3, 4],[0, 1, 2, 3, 4]])
stack_meshgrid.shape=
torch.Size([2, 5, 5])
stack_meshgrid=
tensor([[[0, 0, 0, 0, 0],[1, 1, 1, 1, 1],[2, 2, 2, 2, 2],[3, 3, 3, 3, 3],[4, 4, 4, 4, 4]],[[0, 1, 2, 3, 4],[0, 1, 2, 3, 4],[0, 1, 2, 3, 4],[0, 1, 2, 3, 4],[0, 1, 2, 3, 4]]])
stack_meshgrid_flatten.shape=
torch.Size([2, 25])
stack_meshgrid_flatten=
tensor([[0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4,4],[0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3,4]])
stack_meshgrid_flatten_1=
tensor([[[0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4,4, 4]],[[0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2,3, 4]]])
stack_meshgrid_flatten_2=
tensor([[[0],[0],[0],[0],[0],[1],[1],[1],[1],[1],[2],[2],[2],[2],[2],[3],[3],[3],[3],[3],[4],[4],[4],[4],[4]],[[0],[1],[2],[3],[4],[0],[1],[2],[3],[4],[0],[1],[2],[3],[4],[0],[1],[2],[3],[4],[0],[1],[2],[3],[4]]])
relative_coords_bias=
tensor([[[ 0,  0,  0,  0,  0, -1, -1, -1, -1, -1, -2, -2, -2, -2, -2, -3, -3,-3, -3, -3, -4, -4, -4, -4, -4],[ 0,  0,  0,  0,  0, -1, -1, -1, -1, -1, -2, -2, -2, -2, -2, -3, -3,-3, -3, -3, -4, -4, -4, -4, -4],[ 0,  0,  0,  0,  0, -1, -1, -1, -1, -1, -2, -2, -2, -2, -2, -3, -3,-3, -3, -3, -4, -4, -4, -4, -4],[ 0,  0,  0,  0,  0, -1, -1, -1, -1, -1, -2, -2, -2, -2, -2, -3, -3,-3, -3, -3, -4, -4, -4, -4, -4],[ 0,  0,  0,  0,  0, -1, -1, -1, -1, -1, -2, -2, -2, -2, -2, -3, -3,-3, -3, -3, -4, -4, -4, -4, -4],[ 1,  1,  1,  1,  1,  0,  0,  0,  0,  0, -1, -1, -1, -1, -1, -2, -2,-2, -2, -2, -3, -3, -3, -3, -3],[ 1,  1,  1,  1,  1,  0,  0,  0,  0,  0, -1, -1, -1, -1, -1, -2, -2,-2, -2, -2, -3, -3, -3, -3, -3],[ 1,  1,  1,  1,  1,  0,  0,  0,  0,  0, -1, -1, -1, -1, -1, -2, -2,-2, -2, -2, -3, -3, -3, -3, -3],[ 1,  1,  1,  1,  1,  0,  0,  0,  0,  0, -1, -1, -1, -1, -1, -2, -2,-2, -2, -2, -3, -3, -3, -3, -3],[ 1,  1,  1,  1,  1,  0,  0,  0,  0,  0, -1, -1, -1, -1, -1, -2, -2,-2, -2, -2, -3, -3, -3, -3, -3],[ 2,  2,  2,  2,  2,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0, -1, -1,-1, -1, -1, -2, -2, -2, -2, -2],[ 2,  2,  2,  2,  2,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0, -1, -1,-1, -1, -1, -2, -2, -2, -2, -2],[ 2,  2,  2,  2,  2,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0, -1, -1,-1, -1, -1, -2, -2, -2, -2, -2],[ 2,  2,  2,  2,  2,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0, -1, -1,-1, -1, -1, -2, -2, -2, -2, -2],[ 2,  2,  2,  2,  2,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0, -1, -1,-1, -1, -1, -2, -2, -2, -2, -2],[ 3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  1,  1,  1,  1,  1,  0,  0,0,  0,  0, -1, -1, -1, -1, -1],[ 3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  1,  1,  1,  1,  1,  0,  0,0,  0,  0, -1, -1, -1, -1, -1],[ 3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  1,  1,  1,  1,  1,  0,  0,0,  0,  0, -1, -1, -1, -1, -1],[ 3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  1,  1,  1,  1,  1,  0,  0,0,  0,  0, -1, -1, -1, -1, -1],[ 3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  1,  1,  1,  1,  1,  0,  0,0,  0,  0, -1, -1, -1, -1, -1],[ 4,  4,  4,  4,  4,  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  1,  1,1,  1,  1,  0,  0,  0,  0,  0],[ 4,  4,  4,  4,  4,  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  1,  1,1,  1,  1,  0,  0,  0,  0,  0],[ 4,  4,  4,  4,  4,  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  1,  1,1,  1,  1,  0,  0,  0,  0,  0],[ 4,  4,  4,  4,  4,  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  1,  1,1,  1,  1,  0,  0,  0,  0,  0],[ 4,  4,  4,  4,  4,  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  1,  1,1,  1,  1,  0,  0,  0,  0,  0]],[[ 0, -1, -2, -3, -4,  0, -1, -2, -3, -4,  0, -1, -2, -3, -4,  0, -1,-2, -3, -4,  0, -1, -2, -3, -4],[ 1,  0, -1, -2, -3,  1,  0, -1, -2, -3,  1,  0, -1, -2, -3,  1,  0,-1, -2, -3,  1,  0, -1, -2, -3],[ 2,  1,  0, -1, -2,  2,  1,  0, -1, -2,  2,  1,  0, -1, -2,  2,  1,0, -1, -2,  2,  1,  0, -1, -2],[ 3,  2,  1,  0, -1,  3,  2,  1,  0, -1,  3,  2,  1,  0, -1,  3,  2,1,  0, -1,  3,  2,  1,  0, -1],[ 4,  3,  2,  1,  0,  4,  3,  2,  1,  0,  4,  3,  2,  1,  0,  4,  3,2,  1,  0,  4,  3,  2,  1,  0],[ 0, -1, -2, -3, -4,  0, -1, -2, -3, -4,  0, -1, -2, -3, -4,  0, -1,-2, -3, -4,  0, -1, -2, -3, -4],[ 1,  0, -1, -2, -3,  1,  0, -1, -2, -3,  1,  0, -1, -2, -3,  1,  0,-1, -2, -3,  1,  0, -1, -2, -3],[ 2,  1,  0, -1, -2,  2,  1,  0, -1, -2,  2,  1,  0, -1, -2,  2,  1,0, -1, -2,  2,  1,  0, -1, -2],[ 3,  2,  1,  0, -1,  3,  2,  1,  0, -1,  3,  2,  1,  0, -1,  3,  2,1,  0, -1,  3,  2,  1,  0, -1],[ 4,  3,  2,  1,  0,  4,  3,  2,  1,  0,  4,  3,  2,  1,  0,  4,  3,2,  1,  0,  4,  3,  2,  1,  0],[ 0, -1, -2, -3, -4,  0, -1, -2, -3, -4,  0, -1, -2, -3, -4,  0, -1,-2, -3, -4,  0, -1, -2, -3, -4],[ 1,  0, -1, -2, -3,  1,  0, -1, -2, -3,  1,  0, -1, -2, -3,  1,  0,-1, -2, -3,  1,  0, -1, -2, -3],[ 2,  1,  0, -1, -2,  2,  1,  0, -1, -2,  2,  1,  0, -1, -2,  2,  1,0, -1, -2,  2,  1,  0, -1, -2],[ 3,  2,  1,  0, -1,  3,  2,  1,  0, -1,  3,  2,  1,  0, -1,  3,  2,1,  0, -1,  3,  2,  1,  0, -1],[ 4,  3,  2,  1,  0,  4,  3,  2,  1,  0,  4,  3,  2,  1,  0,  4,  3,2,  1,  0,  4,  3,  2,  1,  0],[ 0, -1, -2, -3, -4,  0, -1, -2, -3, -4,  0, -1, -2, -3, -4,  0, -1,-2, -3, -4,  0, -1, -2, -3, -4],[ 1,  0, -1, -2, -3,  1,  0, -1, -2, -3,  1,  0, -1, -2, -3,  1,  0,-1, -2, -3,  1,  0, -1, -2, -3],[ 2,  1,  0, -1, -2,  2,  1,  0, -1, -2,  2,  1,  0, -1, -2,  2,  1,0, -1, -2,  2,  1,  0, -1, -2],[ 3,  2,  1,  0, -1,  3,  2,  1,  0, -1,  3,  2,  1,  0, -1,  3,  2,1,  0, -1,  3,  2,  1,  0, -1],[ 4,  3,  2,  1,  0,  4,  3,  2,  1,  0,  4,  3,  2,  1,  0,  4,  3,2,  1,  0,  4,  3,  2,  1,  0],[ 0, -1, -2, -3, -4,  0, -1, -2, -3, -4,  0, -1, -2, -3, -4,  0, -1,-2, -3, -4,  0, -1, -2, -3, -4],[ 1,  0, -1, -2, -3,  1,  0, -1, -2, -3,  1,  0, -1, -2, -3,  1,  0,-1, -2, -3,  1,  0, -1, -2, -3],[ 2,  1,  0, -1, -2,  2,  1,  0, -1, -2,  2,  1,  0, -1, -2,  2,  1,0, -1, -2,  2,  1,  0, -1, -2],[ 3,  2,  1,  0, -1,  3,  2,  1,  0, -1,  3,  2,  1,  0, -1,  3,  2,1,  0, -1,  3,  2,  1,  0, -1],[ 4,  3,  2,  1,  0,  4,  3,  2,  1,  0,  4,  3,  2,  1,  0,  4,  3,2,  1,  0,  4,  3,  2,  1,  0]]])
relative_coords_bias=
tensor([[[5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1,1, 1],[5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1,1, 1],[5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1,1, 1],[5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1,1, 1],[5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1,1, 1],[6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2,2, 2],[6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2,2, 2],[6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2,2, 2],[6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2,2, 2],[6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2,2, 2],[7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3,3, 3],[7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3,3, 3],[7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3,3, 3],[7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3,3, 3],[7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3,3, 3],[8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 4,4, 4],[8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 4,4, 4],[8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 4,4, 4],[8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 4,4, 4],[8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 4,4, 4],[9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 5, 5, 5,5, 5],[9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 5, 5, 5,5, 5],[9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 5, 5, 5,5, 5],[9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 5, 5, 5,5, 5],[9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 5, 5, 5,5, 5]],[[5, 4, 3, 2, 1, 5, 4, 3, 2, 1, 5, 4, 3, 2, 1, 5, 4, 3, 2, 1, 5, 4, 3,2, 1],[6, 5, 4, 3, 2, 6, 5, 4, 3, 2, 6, 5, 4, 3, 2, 6, 5, 4, 3, 2, 6, 5, 4,3, 2],[7, 6, 5, 4, 3, 7, 6, 5, 4, 3, 7, 6, 5, 4, 3, 7, 6, 5, 4, 3, 7, 6, 5,4, 3],[8, 7, 6, 5, 4, 8, 7, 6, 5, 4, 8, 7, 6, 5, 4, 8, 7, 6, 5, 4, 8, 7, 6,5, 4],[9, 8, 7, 6, 5, 9, 8, 7, 6, 5, 9, 8, 7, 6, 5, 9, 8, 7, 6, 5, 9, 8, 7,6, 5],[5, 4, 3, 2, 1, 5, 4, 3, 2, 1, 5, 4, 3, 2, 1, 5, 4, 3, 2, 1, 5, 4, 3,2, 1],[6, 5, 4, 3, 2, 6, 5, 4, 3, 2, 6, 5, 4, 3, 2, 6, 5, 4, 3, 2, 6, 5, 4,3, 2],[7, 6, 5, 4, 3, 7, 6, 5, 4, 3, 7, 6, 5, 4, 3, 7, 6, 5, 4, 3, 7, 6, 5,4, 3],[8, 7, 6, 5, 4, 8, 7, 6, 5, 4, 8, 7, 6, 5, 4, 8, 7, 6, 5, 4, 8, 7, 6,5, 4],[9, 8, 7, 6, 5, 9, 8, 7, 6, 5, 9, 8, 7, 6, 5, 9, 8, 7, 6, 5, 9, 8, 7,6, 5],[5, 4, 3, 2, 1, 5, 4, 3, 2, 1, 5, 4, 3, 2, 1, 5, 4, 3, 2, 1, 5, 4, 3,2, 1],[6, 5, 4, 3, 2, 6, 5, 4, 3, 2, 6, 5, 4, 3, 2, 6, 5, 4, 3, 2, 6, 5, 4,3, 2],[7, 6, 5, 4, 3, 7, 6, 5, 4, 3, 7, 6, 5, 4, 3, 7, 6, 5, 4, 3, 7, 6, 5,4, 3],[8, 7, 6, 5, 4, 8, 7, 6, 5, 4, 8, 7, 6, 5, 4, 8, 7, 6, 5, 4, 8, 7, 6,5, 4],[9, 8, 7, 6, 5, 9, 8, 7, 6, 5, 9, 8, 7, 6, 5, 9, 8, 7, 6, 5, 9, 8, 7,6, 5],[5, 4, 3, 2, 1, 5, 4, 3, 2, 1, 5, 4, 3, 2, 1, 5, 4, 3, 2, 1, 5, 4, 3,2, 1],[6, 5, 4, 3, 2, 6, 5, 4, 3, 2, 6, 5, 4, 3, 2, 6, 5, 4, 3, 2, 6, 5, 4,3, 2],[7, 6, 5, 4, 3, 7, 6, 5, 4, 3, 7, 6, 5, 4, 3, 7, 6, 5, 4, 3, 7, 6, 5,4, 3],[8, 7, 6, 5, 4, 8, 7, 6, 5, 4, 8, 7, 6, 5, 4, 8, 7, 6, 5, 4, 8, 7, 6,5, 4],[9, 8, 7, 6, 5, 9, 8, 7, 6, 5, 9, 8, 7, 6, 5, 9, 8, 7, 6, 5, 9, 8, 7,6, 5],[5, 4, 3, 2, 1, 5, 4, 3, 2, 1, 5, 4, 3, 2, 1, 5, 4, 3, 2, 1, 5, 4, 3,2, 1],[6, 5, 4, 3, 2, 6, 5, 4, 3, 2, 6, 5, 4, 3, 2, 6, 5, 4, 3, 2, 6, 5, 4,3, 2],[7, 6, 5, 4, 3, 7, 6, 5, 4, 3, 7, 6, 5, 4, 3, 7, 6, 5, 4, 3, 7, 6, 5,4, 3],[8, 7, 6, 5, 4, 8, 7, 6, 5, 4, 8, 7, 6, 5, 4, 8, 7, 6, 5, 4, 8, 7, 6,5, 4],[9, 8, 7, 6, 5, 9, 8, 7, 6, 5, 9, 8, 7, 6, 5, 9, 8, 7, 6, 5, 9, 8, 7,6, 5]]])

2. kron運算

在結果中,我們發現很多重復的值,這就讓我聯想到kron運算。

  • step1:形成子矩陣
    在這里插入圖片描述
  • step2: kron
    在這里插入圖片描述
  • pytorch
import torch
import torch.nn as nntorch.set_printoptions(precision=3, sci_mode=False)if __name__ == '__main__':run_code = 0height = 5width = 5a_vector = torch.arange(width).to(torch.float).reshape(-1, 1)a_ones = torch.ones(1, width)a_matrix = a_vector @ a_onesprint(f"a_matrix=\n{a_matrix}")b_matrix = a_matrix - a_matrix.Tprint(f"b_matrix=\n{b_matrix}")b_matrix_ones = torch.ones_like(b_matrix)ab_kron = torch.kron(b_matrix,b_matrix_ones)print(f"ab_kron=\n{ab_kron}")final_ab = ab_kron+5print(f"final_ab=\n{final_ab}")
  • result:
a_matrix=
tensor([[0., 0., 0., 0., 0.],[1., 1., 1., 1., 1.],[2., 2., 2., 2., 2.],[3., 3., 3., 3., 3.],[4., 4., 4., 4., 4.]])
b_matrix=
tensor([[ 0., -1., -2., -3., -4.],[ 1.,  0., -1., -2., -3.],[ 2.,  1.,  0., -1., -2.],[ 3.,  2.,  1.,  0., -1.],[ 4.,  3.,  2.,  1.,  0.]])
ab_kron=
tensor([[ 0.,  0.,  0.,  0.,  0., -1., -1., -1., -1., -1., -2., -2., -2., -2.,-2., -3., -3., -3., -3., -3., -4., -4., -4., -4., -4.],[ 0.,  0.,  0.,  0.,  0., -1., -1., -1., -1., -1., -2., -2., -2., -2.,-2., -3., -3., -3., -3., -3., -4., -4., -4., -4., -4.],[ 0.,  0.,  0.,  0.,  0., -1., -1., -1., -1., -1., -2., -2., -2., -2.,-2., -3., -3., -3., -3., -3., -4., -4., -4., -4., -4.],[ 0.,  0.,  0.,  0.,  0., -1., -1., -1., -1., -1., -2., -2., -2., -2.,-2., -3., -3., -3., -3., -3., -4., -4., -4., -4., -4.],[ 0.,  0.,  0.,  0.,  0., -1., -1., -1., -1., -1., -2., -2., -2., -2.,-2., -3., -3., -3., -3., -3., -4., -4., -4., -4., -4.],[ 1.,  1.,  1.,  1.,  1.,  0.,  0.,  0.,  0.,  0., -1., -1., -1., -1.,-1., -2., -2., -2., -2., -2., -3., -3., -3., -3., -3.],[ 1.,  1.,  1.,  1.,  1.,  0.,  0.,  0.,  0.,  0., -1., -1., -1., -1.,-1., -2., -2., -2., -2., -2., -3., -3., -3., -3., -3.],[ 1.,  1.,  1.,  1.,  1.,  0.,  0.,  0.,  0.,  0., -1., -1., -1., -1.,-1., -2., -2., -2., -2., -2., -3., -3., -3., -3., -3.],[ 1.,  1.,  1.,  1.,  1.,  0.,  0.,  0.,  0.,  0., -1., -1., -1., -1.,-1., -2., -2., -2., -2., -2., -3., -3., -3., -3., -3.],[ 1.,  1.,  1.,  1.,  1.,  0.,  0.,  0.,  0.,  0., -1., -1., -1., -1.,-1., -2., -2., -2., -2., -2., -3., -3., -3., -3., -3.],[ 2.,  2.,  2.,  2.,  2.,  1.,  1.,  1.,  1.,  1.,  0.,  0.,  0.,  0.,0., -1., -1., -1., -1., -1., -2., -2., -2., -2., -2.],[ 2.,  2.,  2.,  2.,  2.,  1.,  1.,  1.,  1.,  1.,  0.,  0.,  0.,  0.,0., -1., -1., -1., -1., -1., -2., -2., -2., -2., -2.],[ 2.,  2.,  2.,  2.,  2.,  1.,  1.,  1.,  1.,  1.,  0.,  0.,  0.,  0.,0., -1., -1., -1., -1., -1., -2., -2., -2., -2., -2.],[ 2.,  2.,  2.,  2.,  2.,  1.,  1.,  1.,  1.,  1.,  0.,  0.,  0.,  0.,0., -1., -1., -1., -1., -1., -2., -2., -2., -2., -2.],[ 2.,  2.,  2.,  2.,  2.,  1.,  1.,  1.,  1.,  1.,  0.,  0.,  0.,  0.,0., -1., -1., -1., -1., -1., -2., -2., -2., -2., -2.],[ 3.,  3.,  3.,  3.,  3.,  2.,  2.,  2.,  2.,  2.,  1.,  1.,  1.,  1.,1.,  0.,  0.,  0.,  0.,  0., -1., -1., -1., -1., -1.],[ 3.,  3.,  3.,  3.,  3.,  2.,  2.,  2.,  2.,  2.,  1.,  1.,  1.,  1.,1.,  0.,  0.,  0.,  0.,  0., -1., -1., -1., -1., -1.],[ 3.,  3.,  3.,  3.,  3.,  2.,  2.,  2.,  2.,  2.,  1.,  1.,  1.,  1.,1.,  0.,  0.,  0.,  0.,  0., -1., -1., -1., -1., -1.],[ 3.,  3.,  3.,  3.,  3.,  2.,  2.,  2.,  2.,  2.,  1.,  1.,  1.,  1.,1.,  0.,  0.,  0.,  0.,  0., -1., -1., -1., -1., -1.],[ 3.,  3.,  3.,  3.,  3.,  2.,  2.,  2.,  2.,  2.,  1.,  1.,  1.,  1.,1.,  0.,  0.,  0.,  0.,  0., -1., -1., -1., -1., -1.],[ 4.,  4.,  4.,  4.,  4.,  3.,  3.,  3.,  3.,  3.,  2.,  2.,  2.,  2.,2.,  1.,  1.,  1.,  1.,  1.,  0.,  0.,  0.,  0.,  0.],[ 4.,  4.,  4.,  4.,  4.,  3.,  3.,  3.,  3.,  3.,  2.,  2.,  2.,  2.,2.,  1.,  1.,  1.,  1.,  1.,  0.,  0.,  0.,  0.,  0.],[ 4.,  4.,  4.,  4.,  4.,  3.,  3.,  3.,  3.,  3.,  2.,  2.,  2.,  2.,2.,  1.,  1.,  1.,  1.,  1.,  0.,  0.,  0.,  0.,  0.],[ 4.,  4.,  4.,  4.,  4.,  3.,  3.,  3.,  3.,  3.,  2.,  2.,  2.,  2.,2.,  1.,  1.,  1.,  1.,  1.,  0.,  0.,  0.,  0.,  0.],[ 4.,  4.,  4.,  4.,  4.,  3.,  3.,  3.,  3.,  3.,  2.,  2.,  2.,  2.,2.,  1.,  1.,  1.,  1.,  1.,  0.,  0.,  0.,  0.,  0.]])
final_ab=
tensor([[5., 5., 5., 5., 5., 4., 4., 4., 4., 4., 3., 3., 3., 3., 3., 2., 2., 2.,2., 2., 1., 1., 1., 1., 1.],[5., 5., 5., 5., 5., 4., 4., 4., 4., 4., 3., 3., 3., 3., 3., 2., 2., 2.,2., 2., 1., 1., 1., 1., 1.],[5., 5., 5., 5., 5., 4., 4., 4., 4., 4., 3., 3., 3., 3., 3., 2., 2., 2.,2., 2., 1., 1., 1., 1., 1.],[5., 5., 5., 5., 5., 4., 4., 4., 4., 4., 3., 3., 3., 3., 3., 2., 2., 2.,2., 2., 1., 1., 1., 1., 1.],[5., 5., 5., 5., 5., 4., 4., 4., 4., 4., 3., 3., 3., 3., 3., 2., 2., 2.,2., 2., 1., 1., 1., 1., 1.],[6., 6., 6., 6., 6., 5., 5., 5., 5., 5., 4., 4., 4., 4., 4., 3., 3., 3.,3., 3., 2., 2., 2., 2., 2.],[6., 6., 6., 6., 6., 5., 5., 5., 5., 5., 4., 4., 4., 4., 4., 3., 3., 3.,3., 3., 2., 2., 2., 2., 2.],[6., 6., 6., 6., 6., 5., 5., 5., 5., 5., 4., 4., 4., 4., 4., 3., 3., 3.,3., 3., 2., 2., 2., 2., 2.],[6., 6., 6., 6., 6., 5., 5., 5., 5., 5., 4., 4., 4., 4., 4., 3., 3., 3.,3., 3., 2., 2., 2., 2., 2.],[6., 6., 6., 6., 6., 5., 5., 5., 5., 5., 4., 4., 4., 4., 4., 3., 3., 3.,3., 3., 2., 2., 2., 2., 2.],[7., 7., 7., 7., 7., 6., 6., 6., 6., 6., 5., 5., 5., 5., 5., 4., 4., 4.,4., 4., 3., 3., 3., 3., 3.],[7., 7., 7., 7., 7., 6., 6., 6., 6., 6., 5., 5., 5., 5., 5., 4., 4., 4.,4., 4., 3., 3., 3., 3., 3.],[7., 7., 7., 7., 7., 6., 6., 6., 6., 6., 5., 5., 5., 5., 5., 4., 4., 4.,4., 4., 3., 3., 3., 3., 3.],[7., 7., 7., 7., 7., 6., 6., 6., 6., 6., 5., 5., 5., 5., 5., 4., 4., 4.,4., 4., 3., 3., 3., 3., 3.],[7., 7., 7., 7., 7., 6., 6., 6., 6., 6., 5., 5., 5., 5., 5., 4., 4., 4.,4., 4., 3., 3., 3., 3., 3.],[8., 8., 8., 8., 8., 7., 7., 7., 7., 7., 6., 6., 6., 6., 6., 5., 5., 5.,5., 5., 4., 4., 4., 4., 4.],[8., 8., 8., 8., 8., 7., 7., 7., 7., 7., 6., 6., 6., 6., 6., 5., 5., 5.,5., 5., 4., 4., 4., 4., 4.],[8., 8., 8., 8., 8., 7., 7., 7., 7., 7., 6., 6., 6., 6., 6., 5., 5., 5.,5., 5., 4., 4., 4., 4., 4.],[8., 8., 8., 8., 8., 7., 7., 7., 7., 7., 6., 6., 6., 6., 6., 5., 5., 5.,5., 5., 4., 4., 4., 4., 4.],[8., 8., 8., 8., 8., 7., 7., 7., 7., 7., 6., 6., 6., 6., 6., 5., 5., 5.,5., 5., 4., 4., 4., 4., 4.],[9., 9., 9., 9., 9., 8., 8., 8., 8., 8., 7., 7., 7., 7., 7., 6., 6., 6.,6., 6., 5., 5., 5., 5., 5.],[9., 9., 9., 9., 9., 8., 8., 8., 8., 8., 7., 7., 7., 7., 7., 6., 6., 6.,6., 6., 5., 5., 5., 5., 5.],[9., 9., 9., 9., 9., 8., 8., 8., 8., 8., 7., 7., 7., 7., 7., 6., 6., 6.,6., 6., 5., 5., 5., 5., 5.],[9., 9., 9., 9., 9., 8., 8., 8., 8., 8., 7., 7., 7., 7., 7., 6., 6., 6.,6., 6., 5., 5., 5., 5., 5.],[9., 9., 9., 9., 9., 8., 8., 8., 8., 8., 7., 7., 7., 7., 7., 6., 6., 6.,6., 6., 5., 5., 5., 5., 5.]])

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/74901.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/74901.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/74901.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Redis 版本演進及主要新特性

Redis 版本發布歷史 穩定版本時間線 Redis 2.6 (2012年)Redis 2.8 (2013年11月)Redis 3.0 (2015年4月) - 首次支持集群Redis 3.2 (2016年5月)Redis 4.0 (2017年7月)Redis 5.0 (2018年10月)Redis 6.0 (2020年4月)Redis 6.2 (2021年2月)Redis 7.0 (2022年4月) - 最新穩定版(截至…

HTML5 Geolocation(地理定位)學習筆記

一、HTML5 Geolocation簡介 HTML5 Geolocation(地理定位)API用于獲取用戶的地理位置信息。通過這個API,可以獲取用戶的緯度、經度、海拔等信息。由于地理定位可能涉及用戶隱私,因此只有在用戶同意的情況下,才能獲取其…

愛普生VG3225EFN壓控晶振5G基站低噪聲的解決方案

在 5G 通信網絡的高速發展中,系統噪聲的控制成為保障網絡可靠性與數據吞吐量的關鍵。愛普生 VG3225EFN 壓控晶振憑借其卓越的低噪聲特性,成為 5G 基站時鐘系統的理想選擇。通過創新的技術設計,這款晶振不僅為基站提供了穩定的時鐘基準&#x…

【問題解決】Linux安裝conda修改~/.bashrc配置文件后,root 用戶下顯示 -bash-4.2#

問題描述 在Linux安裝conda下的python環境時候,修改了~/.bashrc文件,修改完成后,再次進入服務器后,登錄時候顯示的不是正常的[rootlocalhost ~]#,而是-bash-4.2# 原因分析: 網上原因有:/root下…

機器學習knnlearn5

import numpy as np from os import listdir from sklearn.neighbors import KNeighborsClassifier as kNN# 此函數用于將一個32x32的文本文件轉換為一個1x1024的一維向量 def img2vector(filename):"""將32x32的文本文件轉換為1x1024的向量:param filename: 要…

git revert 用法實戰:撤銷一個 commit 或 merge

git revert 1 區別 ? 常規的 commit (使用 git commit 提交的 commit) ? merge commit 2 首先構建場景 master上的代碼 dev開發分支上,添加一個a標簽,并commit這次提交 切到master上,再次進行改動和提交 將de…

自然語言處理|高效法律助手:AI如何解析合同條款?

引言:法律 AI 的崛起 在數字化浪潮快速發展的今天,人工智能(AI)已不再是一個陌生的概念,它正以快速發展滲透到各個領域,法律行業也不例外。從智能合同審查到法律風險預測,AI 技術為法律工作帶來…

【數據分享】2000—2024年我國鄉鎮的逐年歸一化植被指數(NDVI)數據(年最大值/Shp/Excel格式)

之前我們分享過2000-2024年我國逐年的歸一化植被指數(NDVI)柵格數據,該逐年數據是取的當年月歸一化植被指數(NDVI)的年最大值!另外,我們基于此年度柵格數據按照行政區劃取平均值,得到…

辦公網絡健康監控(域名健康監控)

需求 辦公室訪問一些網絡經常出現故障 現需要時時觀察監控這些網絡的健康 包含專線網等其他網絡 實施 支持 SNMP 且支持 Webhook 發送報警的開源監控系統 hertzbeat:關系型數據庫+時序數據庫; Zabbix:關系型數據庫; LibreNMS:關系型數據庫; Prometheus(包含ale…

藍橋杯 合并數列

問題描述 小明發現有很多方案可以把一個很大的正整數拆成若干個正整數的和。他采用了其中兩種方案,分別將它們列為兩個數組: {a?, a?, ..., a?}{b?, b?, ..., b?} 兩個數組的元素和相同。 定義一次合并操作為:將某個數組中相鄰的兩…

【行駛證識別】批量咕嘎OCR識別行駛證照片復印件圖片里的文字信息保存表格或改名字,基于QT和騰訊云api_ocr的實現方式

項目背景 在許多業務場景中,如物流管理、車輛租賃、保險理賠等,常常需要處理大量的行駛證照片復印件。手動錄入行駛證上的文字信息,像車主姓名、車輛型號、車牌號碼等,不僅效率低下,還容易出現人為錯誤。借助 OCR(光學字符識別)技術,能夠自動識別行駛證圖片中的文字信…

個人學習編程(3-29) leetcode刷題

最后一個單詞的長度: 思路:跳過末尾的空格,可以從后向前遍歷 然后再利用 while(i>0 && s[i] ! ) 可以得到字符串的長度, int lengthOfLastWord(char* s) {int length 0;int i strlen(s) - 1; //從字符串末尾開始//…

PAT甲級(Advanced Level) Practice 1028 List Sorting

原題 1028 List Sorting - PAT (Advanced Level) Practice 題目大意 輸入n個學生的id、姓名、分數,再輸入C表示對C列進行排序。 id:從小到大排 姓名:姓名不同時從小到大排,相同時id從小到大排 分數:不同時從小到…

UE4學習筆記 FPS游戲制作20 重寫機器人和玩家死亡 切換相機和模型

定義父類中的死亡方法 在父類中定義OnDie方法,不需要實現,由子類實現各自的死亡邏輯 新建一個Die方法,處理公共的死亡邏輯 Die的實現: 以前的分離控制現在要延遲做,如果分離了控制器,就無法再獲取到玩家的…

Linux信號的誕生與歸宿:內核如何管理信號的生成、阻塞和遞達?

個人主頁:敲上癮-CSDN博客 個人專欄:Linux學習、游戲、數據結構、c語言基礎、c學習、算法 目錄 一、認識信號 二、信號的產生 1.鍵盤輸入 2.系統調用 3.系統指令 4.硬件異常 5.軟件條件 三、信號的保存 1.block 2.pending 3.handler 四、信號…

DeepSeek API集成開發指南——Flask示例實踐

DeepSeek API集成開發指南——Flask示例實踐 序言:智能化開發新范式 DeepSeek API提供了覆蓋自然語言處理、代碼生成等多領域的先進AI能力。本文將以一個功能完備的Flask示例系統為載體,詳解API的集成方法與最佳實踐。通過本案例,開發者可快…

Linux環境下安裝部署Docker

windows下連接Linux: 打開終端: //ssh遠程連接 ssh root192.168.xx.xx//輸入賬號密碼 root192.168.xx.xxs password: ssh連接成功! 安裝Docker: //安裝Docker yum install -y yum-utils device-mapper-persistent-data lvm2 …

開源CDN產品-GoEdge

一、背景 上篇文章分析了一下CDN的基本原理以及使用代碼實現了一個乞丐版的智能DNS調度器。從整個例子我們可以清晰了解到CDN原理,也就那么回事。 但是,之前也講過了,CDN產品融合的技術比較雜、也比較多。所以我就想著,萬物皆有開…

正則表達式-萬能表達式

1、正則 正則表達式是一組由字母和符號組成的特殊文本, 它可以用來從文本中找 出滿足你想要的格式的句子. {“basketId”: 0, “count”: 1, “prodId”: #prodId#, “shopId”: 1, “skuId”: #skuId#} #prodId# re相關的文章: https://www.cnblogs.com/Simple-S…

javaWeb Router

一、路由簡介 1、什么是路由? - 定義:路由就是根據不同的 URL 地址展示不同的內容或頁面。 - 通俗理解:路由就像是一個地圖,我們要去不同的地方,需要通過不同的路線進行導航。 2、路由的作用 - 單頁應用程序…