1. reshape() 和 view()
view和reshape都用于改变张量的shape
view是reshape的一个特例,view要求张量在内存中是连续的,否则会抛出错误,view只能用于contiguous的张量
reshape会自动处理contiguous的情况,如果张量是contiguous的,reshape的行为和view一样;如果不是,reshape会返回一个新张量,该张量是contiguous
2. permute()和transpose()
permute和transpose都用于改变张量的维度顺序
transpose只能交换两个维度的顺序,permute可以重排列所有维度的顺序
3. contiguous
当使用transpose和permute后,张量在内存中的存储顺序可能会发生变化,导致张量不再contiguous