高维张量的显示
一般主要在图像n_img,h,w,n_box,n_loc
n_img:n张图象
h
w
n_box:每个坐标点n个盒子
n_loc:每个盒子的坐标,4表示x,y,h,w
共5个维度
为了便于理解,可以看以下
案例:(2,2,2,4,4)
2张图片2X2的大小,每点4个盒子,每个盒子4个坐标
理解:张量数据的具体显示从后面往前看
首先:4X4表示一个点的盒子和坐标
[[ ]]二维
然后:2X4X4表示横向(宽度)2个点的盒子坐标
[ [ [ ] ] ]三维
2个4X4
再然后:2X2X4X4表示一幅图像的所有点的盒子坐标
2个2个4X4四维
最后: 2X2X2X4X4幅图像的所有点的盒子坐标
备注:将几个a维度的装在一起,最后的维度会加1
实例
//存放64个数,shape(64)
a=np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16])
//变换为5维张量,shape(2,2,2,4,4)
b=a.reshape(2,2,2,4,4)
//打印5维张量的数据,可以看看
print(b)
[[[[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]
[13 14 15 16]]//4X4
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]
[13 14 15 16]]]//第一个2X4X4
[[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]
[13 14 15 16]]
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]
[13 14 15 16]]]]//第二个2X4X4
//也就是第一个2X2X4X4
[[[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]
[13 14 15 16]]
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]
[13 14 15 16]]]
[[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]
[13 14 15 16]]
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]
[13 14 15 16]]]]] //就是第二个2X2X4X4
//合起来就是2 X2X2X4X4
//现在取最后一维度的索引0的数值,可以想象为x坐标
//每张图所有点的盒子的x坐标
//方便理解直接看最后两个维度4X4 ,此处为 :X0,取出二维数组所有行的第一列
print(b[:,:,:,:,0])
//现在是四维,2 2 2 4
[[[[ 1 5 9 13]
[ 1 5 9 13]]
[[ 1 5 9 13]
[ 1 5 9 13]]]
[[[ 1 5 9 13]
[ 1 5 9 13]]
[[ 1 5 9 13]
[ 1 5 9 13]]]]
不对和不足之处,待补充