rank 1 array-shape

「学习内容总结自吴恩达深度学习课程第一课第二周关于 Python/numpy 的内容」

1. 什么是rank 1 array

当创建神经网络的输入时,有时会使用下面的代码来创建行向量或者列向量,但其实这样创建的既不是行向量也不是列向量,它的形状为(n,),这样一个畸形的数组称之为rank 1 array(秩为1的数组)。

2. 产生rank 1 array的情况

情况一:

有时候在创建输入时不小心打错代码,也会创建出这样形状畸形的数组,所以创建数组的时候要注意检查“[ ]”符号的数量,如果只为一对的话,那就不小心创建了rank 1 array。

情况二:

还有的时候,要导入大量的数据进行训练迭代,可能为了便于迭代会使用Python中的函数压缩数据。在做udacity深度学习第一个项目的时候就会遇到这样的情况:

这里是把features和targets通过函数压缩在一张表里,这样可以同时将X,y进行迭代。但这时就会不可避免的产生秩为1的数组。

函数压缩数据的示例如下:

情况三:

下面这些切取数组的做法也会产生rank 1 array:

3. 产生rank 1 array后的解决方法

方法一:使用或来改变形状

使用是把列的数量增加一维,则是把行的数量增加一维。

方法二:使用reshape方法改变形状

Python中的是个十分好用的方法,在不确定数据形状的情况下,reshape一下是个很有必要的操作。Andrew Ng的建议是不要羞于使用,这能帮助我们避免产生bug。

4. 避免出现rank 1 array 的做法

不要用这种写法

使用上面的方法修改形状,不要羞于使用

必要的时候使用来确定形状是否与想要的结果一致

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181116G194E100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券