python的变维度:
X.shape = (a,b,c)这种操作,比如(4,3,2),他是先切分4,然后3,然后2;; 2是连续的值, 4和3维度不是。
这个和matlab是不一样的!!!
惨痛的教训,定位了一个下午问题,泪流满面。教训式知识的迁移不是“理所当然”的。管中窥豹,从这里可以想想想要做迁移学习的重要性,和坑位之多,之隐蔽,之深刻。
举例
python:
a = np.array(range(24))
a.shape = (4,3,2)
array([[[ 0, 1],
[ 2, 3],
[ 4, 5]],
[[ 6, 7],
[ 8, 9],
[10, 11]],
[[12, 13],
[14, 15],
[16, 17]],
[[18, 19],
[20, 21],
[22, 23]]])
matlab:
a = [1:24]
a.reshape(4,3,2)
reshape(a,[4,3,2])
ans(:,:,1) =
1 5 9
2 6 10
3 7 11
4 8 12
ans(:,:,2) =
13 17 21
14 18 22
15 19 23
16 20 24
总结:
python维度shape,类似“由整体到局部,越切越小”, 最小维度才是连续分配的维度。
matlab维度shape,类似“由局部到整体,越切刀越大”, 最大维度才是连续分配的维度。-列优先准则;