flatten层的作用
【摘要】 flatten是用来对数组进行展平操作的,首先我们假设有一张灰度图片,这个图片只有3x3个像素点,分别是从1到9,我们对其进行flatten操作。首先它会把每1行进行分开,然后用第2行接在第1行后面,形成一个新的数组1,2,3,4,5,6,最后再把第3行的7,8,9接在新生成的数组后面形成最终的数组。接下来我们来验证一下我们的猜想。首先导入numpy包,用它来创建一个3x3的二维数组a,并将...
flatten是用来对数组进行展平操作的,首先我们假设有一张灰度图片,这个图片只有3x3个像素点,分别是从1到9,我们对其进行flatten操作。首先它会把每1行进行分开,然后用第2行接在第1行后面,形成一个新的数组1,2,3,4,5,6,最后再把第3行的7,8,9接在新生成的数组后面形成最终的数组。
接下来我们来验证一下我们的猜想。首先导入numpy包,用它来创建一个3x3的二维数组a,并将a打印出来。
import numpy as np
a = np.array([[1,2,3],
[4,5,6],
[7,8,9]])
print(a)
[[1 2 3] [4 5 6] [7 8 9]]
然后我们将a进行flatten操作,赋值为b,然后把b打印出来。
b = a.flatten()
print(b)
[1 2 3 4 5 6 7 8 9]
我们可以看到,经过flatten操作之后,本来3行的数组变成了1行。最后我们打印一下a和b的形状,看看是不是从3行变成了1行。
print(a.shape)
print(b.shape)
(3, 3) (9,)
如果是彩色图片的话,它会有3个颜色通道,进行fltten时的步骤也是一样的。分别把每个通道展平,然后将第2个通道接在第1个通道后面,再将第3个通道接在第2个通道后面。
c = np.array([[[1,2,3],
[4,5,6],
[7,8,9]],
[[1,2,3],
[4,5,6],
[7,8,9]],
[[1,2,3],
[4,5,6],
[7,8,9]]])
print(c)
[[[1 2 3] [4 5 6] [7 8 9]] [[1 2 3] [4 5 6] [7 8 9]] [[1 2 3] [4 5 6] [7 8 9]]]
打印展平后的数组,看一下是不是已经展平成了1行
d = c.flatten()
print(d)
[1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9]
看一下展平前后的数组形状
print(c.shape)
print(d.shape)
(3, 3, 3) (27,)
flatten操作虽然原理非常简单,但是在深度学习中却经常用到,是一个必须要掌握的知识点。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)