如何搭建卷积神经网络
1 问题卷积的过程就是将一个卷积核(convolution kernel),通常是一个 K乘K 的矩阵,对原图的每个像素点做卷积计算从而得到一个新的 M乘N 的图像。这个卷积过程可以对原图执行不同的操作:模糊、锐化、描边等等,而这些操作全都由卷积核的性质决定。如何搭建卷积神经网络,是我们需要研究的内容。2 方法我们首先通过继承nn.Module定义我们的CNN Class,然后在__init__里
1 问题
卷积的过程就是将一个卷积核(convolution kernel),通常是一个 K乘K 的矩阵,对原图的每个像素点做卷积计算从而得到一个新的 M乘N 的图像。这个卷积过程可以对原图执行不同的操作:模糊、锐化、描边等等,而这些操作全都由卷积核的性质决定。如何搭建卷积神经网络,是我们需要研究的内容。
2 方法
我们首先通过继承nn.Module定义我们的CNN Class,然后在__init__里创建CNN的每个layer。神经网络所有运算通过forward函数实现。这个CNN例子中一共是两个2维卷积层和两个全连接线性层,2 通过一些激活函数(activation function)做连接,最后输出softmax分类结果。我们把所有的神经网络层都放在__init__中,激活所有的函数。

输入图像是(1*1*28*28):第一个1是batch size,这里可以忽略,这是一张单通道,28*28的图像。卷积层的输入也是单通道,需要和图像的通道数量保持一致!输出是10个通道,卷积核的尺寸是5*5。所以我们的输出也自然是 (1*10*24*24):其中batch size = 1 保持不变,图像变成了(24*24),24 = 28 - 5 + 1
最后torch.size结果如下:

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)