深度学习:06 图像以Tensor方式输入CNN

目录

CNN中输入Tensor

滤波器运算

感悟总结


CNN中输入Tensor

CNN的输入形状通常为4,分别用一个字母代表每个轴上的长度,那么它的shape为:

[B,C,H,W]

我们从右往左看:

对于H、W,我们应当能想到它是输入图像的长度与宽度,比如在fashion图像数据集里的图像数据为28*28、VGG-16神经网络所使用的图像大小224*224。

C表示的颜色通道数,常见的RGB通道为3,而灰度图像的通道为1。

B表示的是一个批量的大小,在神经网络中,我们通常使用批量的样本而不是单一的样本,在这里就是说一次我会输入B张图片。

来举个例子,假设我们有一个给定的张量,它的形状是[3,1,28,28]:

我们获得了一下信息,一次输入三张图片,每张的通道数为1,它们的尺寸大小均为28*28。

滤波器运算

卷积会改变了高度和宽度维度以及颜色通道的数量,通道的数量根据在层中使用的滤波器的数量而变化,滤波的大小会改变H、W等,CNN中使用不同的filter对图像进行卷积操作,每个filter进行卷积之后都会形成一个输出通道,我们称这样的为特征图,每次卷积在特征图的呈现,就是特征映射,这样我们便会得到图像的特定特征,不如说边缘信息,而在网络训练的过程中学习时,这些映射就会出现

举个例子,比如有三个卷积滤波器,对形状为[1,1,H,W]进行卷积:

经过卷积后变成了[1,3,H',W']。

感悟总结

在我打算开始学习深度学习的时候,又开始绕了很多弯,我一直觉得学习一项新技术,最重要的是否能筛选出真正有价值的学习资料,当我开始学习python时,我看了很多的点赞量高的视频、学习网站、博客。真正能在我平时用的却不是那么的多,即使不熟悉的一些知识点也能通过在CSDN里检索学到。

我是一个坚定不移的拿来主义与简洁主义者(这也是我为什么这么的喜欢python),面对大量的框架、类、函数,宁我头痛不已,我甚至无法知道该从哪里开始,对于我来说它们只是一个为我解决问题的工具,所以花费很多精力去学习驳杂、无法判定是否时常用到的时候,我的内心有着一股抵触。但在我学了一段opencv后,我能够把握住哪些地方需要好好学习,哪些地方是可以省去的,毫不夸张的说,我现在能总结一份入门opencv的学习路线以及学习资料。

关于这个专栏其实前面的有些地方我并不是很满意,但唯有都学了,才能知道哪些是我们该去掌握的。

你可能感兴趣的:(深度学习杂文,深度学习,cnn,人工智能)