本文主要是介绍用猫狗分类的代码解释Conv2d()参数的应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
用猫狗分类的代码解释Conv2d()参数的应用
举个小例子先,由易到难,后面我会用猫狗分类的实例进一步讲解。(谢谢群里的fser和lk)
上面这个小案例转自https://www.cnblogs.com/expttt/p/12397330.html
让大家对Conv2d的参数有了初步的认识。进一步用语言描述一下:
输入的batch_size是2,通道数是1,图片的HW=73
使用的过滤器是23
输出的通道数仍然是1,输出的深度是8,也就是说,是指把23的过滤器(卷积核)用了8个,输出的通道是8,即有8个featur map,因为每个过滤器对应一个feature map。
接下来用猫狗分类的代码进一步举例说明
在猫狗分类程序中,卷积代码如下:
上图中,红框、绿框、蓝框的关系解释如下:
红框:**输入是batch_size通道HW=2x3x32x32;
绿色框:Conv2d的参数(3,6,5)分别表示通道数,输出的深度(滤波器个数),滤波器的维度55, 因此卷积后,输出如蓝色框部分。
蓝框:(32-5)+1=28,输出的feature map是2828.6代表输出深度,因为有6个滤波器。
**参数个数:**5x5x3x6+6(偏置)=456,这里的3是通道数,6是滤波器个数,再加上偏置,所以参数为456。
知识盲点:通道和输出深度是两个概念。比如彩色图,RGB共3个通道,进行卷积后,生成的通道数也就是深度,与卷积核的个数有关。即不管输入数据的通道是几,假设灰度图为1 ,或者彩色图为3,最终经过一个卷积核操作后,都只会生成一个feature map。但是你要注意,就算是一个卷积核,这个卷积核的通道数要和输入的通道一致。也就是说,假设这一个卷积核是44,
那么当通道为1,你的卷积核应该为是1x4x4。
当通道为3,你的卷积核是应该为3x4x4
结果都是只生成一个feature map。
关于卷积时,如何运算,下篇文章再写。
这篇关于用猫狗分类的代码解释Conv2d()参数的应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!