参考链接: Python中的numpy.reshape
用法
numpy中reshape跟resize都是用于改变多维数组的形状,在机器学习方法中使用的含义就是改变矩阵的形状单纯从代码看两个函数的应用没有任何区别如下面代码所示:
>>> import numpy as np
>>> x = np.random.rand(2,3)
>>> x
array([[0.11566322, 0.69637779, 0.56906707],
[0.73949046, 0.8744751 , 0.51143749]])
>>> x.reshape(3,2)
array([[0.11566322, 0.69637779],
[0.56906707, 0.73949046],
[0.8744751 , 0.51143749]])
>>> x
array([[0.11566322, 0.69637779, 0.56906707],
[0.73949046, 0.8744751 , 0.51143749]])
>>> x.resize(3,2)
>>> x
array([[0.11566322, 0.69637779],
[0.56906707, 0.73949046],
[0.8744751 , 0.51143749]])
但是具体来看:
reshape没有修改原始数据resize修改了原始数据 除此之外,值得注意的是reshape只能按照数组原有的维度进行重组不能越界,而resize函数可以越界,具体见代码 因为两种函数的不同特性,所以其在深度学习的用法也不相同。如卷积神经网络的输入可以是图片,也可以是数组,但是有一个共同的特点,输入都要保持相同形状,所以这个时候可能会改变数据集的数据(具体根据自己数据集而定),只能选择resize函数。而只是在逻辑上改变矩阵的行列数或者通道数,也不会增减任何数据,在深度学习中我们经常用到。 参考资料