python中reshape

 

比如

arr = [1,2,3,4,5,6,7,8,9] # 一个一维的list,长度为9


想把arr变成一个3*3的矩阵,这就可以用的reshape了,有两个方法,第一

arr.reshape(3,3)

这个很好理解,不多说,重点看第二个方法

arr.reshape(-1,3)

这样也可以把arr变成3*3的矩阵,这个-1代表的意思就是,我不知道可以分成多少行,但是我的需要是分成3列,多少行我不关心。

最后,看一个实际的例子,在这个数据集里面

from sklearn.datasets import load_digits # 一个图片的数据集

这个图像的表示方法是1797*64,表示1797张图片,每张图片用一行64个数表示,怎么把这一行的数据取出来呢?就是用的reshape这个函数

picture_data = data.reshape(-1,8,8,1)

-1表示不知道,两个8表示8行8列,1表示一维空间(彩色是在处理的时候是三维空间RGB),整短代码就是说,把1797*64这个矩阵,变换成8*8的不知道多少个的矩阵,这样后面就方便用CNN神经网络去处理了

 

在如何表示一组彩色图片的问题上,Theano和TensorFlow发生了分歧, '日'模式,也即Theano模式会把100张RGB三通道的16×32(高为16宽为32)彩色图表示为下面这种形式(100,3,16,32),Caffe采取的也是这种方式。第0个维度是样本维,代表样本的数目,第1个维度是通道维,代表颜色通道数。后面两个就是高和宽了。这种theano风格的数据组织方法,称为“channels_first”,即通道维靠前。

而TensorFlow,的表达形式是(100,16,32,3),即把通道维放在了最后,这种数据组织方式称为“channels_last”。

keras中添加卷积层时,可以指定deat_format格式:

model.add(Convolution2D(
    batch_input_shape=(None, 1, 28, 28),   #多少数据  通道数  宽  高
    filters=32,     #滤波器数量
    kernel_size=5,   #滤波器大小5x5
    strides=1,       #步长1
    padding='same',     # Padding method
    data_format='channels_first',
))
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值