深度学习---卷积神经网络搭建步骤(理论)

本文详细介绍了如何在PyCharm中设置Python环境,导入相关库,构建基于`nn.Module`的卷积神经网络,包括定义网络结构、卷积层、池化层和全连接层,以及实现正向传播、损失函数选择和优化器配置,最后解释了epoch和batch的概念。
摘要由CSDN通过智能技术生成

1.在pycharm创建合适Python环境,导入所需的库和模块

import torch
import torch.nn as nn

torch.nn包中主要包含了:

1)用来搭建各个层的模块(Modules),比如全连接、二维卷积、池化等;

2)包含了一系列有用的loss函数,这些函数也是在训练神经网络时必不可少的,比如CrossEntropyLoss、MSELoss等;

3)orch.nn.functional子包中包含了常用的激活函数,如relu、leaky_relu、prelu、sigmoid等。


torch.optim包则主要包含了用来更新参数的优化算法,比如SGD、AdaGrad、RMSProp、 Adam.

2.定义卷积神经网络类,继承自 nn.Module

class CNN(nn.Module):
    def __init__(self):
        super(CNN, self).__init__()
        # 在此定义网络结构

3.在‘_init_’方法中,定义网络结构,包括卷积层,池化层,全连接层等

//创建卷积层(输入通道,输出通道,卷积核大小)
self.conv1=nn.Conv2d(in_channels,out_chsnnels,kernel_size)
//最大池化层(池化窗口大小,步幅)
self.pool=nn.MaxPool2d(kernel_size,stride)
//全连接层(输入特征数量。输出特征数量)
self.fcl=nn.Linear(in_festures,out_features)

创建卷积层,它会对输入数据进行卷积操作,输出一系列特征图。

创建最大池化层,它将输入特征图的每个窗口中的最大值提取出来,减小了特征图的空间维度,减少计算量。

创建全连接层,也称为密集层,它将输入特征进行线性变换,然后应用激活函数,最终产生输出。

全连接层的每一个结点都与上一层的所有结点相连,用来把前边提取到的特征综合起来

4.实现‘forward’方法,定义正向传播过程

def forward(self,x):
    x=self.conv1(x)
    x=self.pool(x)
    x=x.view(-1.out_feature)
    x=self.fc1(x)
    return x

5.创建模型实例

model=CNN()

6.定义损失函数和优化器

criterion=nn.CrossEntropyLoss()
optimizer=torch.optim.SGD(model.parameters(),lr=learing_rate)

7.训练和测试

8.补充

1)Epoch:当一个完整的数据集通过了神经网络一次并且返回了一次,这个过程称为一次>epoch。(也就是说,所有训练样本在神经网络中都 进行了一次正向传播 和一次反向传播 )再通俗一点,一个Epoch就是将所有训练样本训练一次的过程。

2)Batch:将整个训练样本分成若干个Batch(批次)

     Batch_Size(批大小):每批样本的大小。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值