在实践中,经常需要对中间数据或输出数据进行维度转换,保证多个数据间计算维度上的一致性。
一般主要涉及pytorch中tensorde的维度转换、numpy中array的维度转换。本篇先对array的维度转换方法进行总结,涉及的转换方法如下:
# reshape()
# ravel()
# flatten()
# transpose()
# resize()
具体用法:
array_01 = np.arange(24)
print('\narray_01:\n', array_01, '\narray shape:', array_01.shape)
# 输出:array_01是一个一维数组,数组元素24个
# array_01:
# [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
# array shape: (24,)
# reshape(n1,n2,...,ni)将数组转换成特定维度
# n1*n2*...*ni = 转换前数组元素的总数
array_02 = array_01.reshape(3, 2, 4)
print('\narray_02:\n', array_02, '\narray shape:', array_02.shape)
# 输出:array_02是一个三维数组,channel为3,2行4列,3*2*4=24
# array_02:
# [[[ 0 1 2 3]