AlexNet网络的搭建以及训练花分类

前言

本学习笔记参考自B站up主霹雳吧啦Wz

代码均来自导师github开源项目WZMIAOMIAO/deep-learning-for-image-processing: deep learning for image processing including classification and object-detection etc. (github.com)

视频链接在这里:2.1 pytorch官方demo(Lenet)_哔哩哔哩_bilibili


AlexNet网络结构

AlexNet是2012年ImageNet竞赛冠军获得者Hinton和他的学生Alex Krizhevsky设计的。

其中也是首次再CNN中应用到了ReLUDropout

输入的数据特征为224×224×3,同时论文中采用双GPU并行运算的方法,我们就只采用单GPU,所以就运行下方图中的一半就好了。


1、Model

注意:pytorch框架中的Tensor通道排序为[batch_size, channel, height, width]

import torch.nn as nn
import torch


class AlexNet(nn.Module):
    def __init__(self, num_classes=1000, init_weights=False):  # init_weights为定义的初始化权重函数
        super(AlexNet, self).__init__()
        self.features = nn.Sequential(
            nn.Conv2d(3, 48, kernel_size=11, stride=4, padding=2),  # input[3, 224, 224]  output[48, 55, 55]
            nn.ReLU(inplace=True),
            nn.MaxPool2d(kernel_size=3, stride=2),                  # output[48, 27, 27]
            nn.Conv2d(48, 128, kernel_size=5, padding=2),           # output[128, 27, 27]
            nn.ReLU<
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AlexNet是一个经典的卷积神经网络模型,它在2012年的ImageNet大规模视觉识别挑战赛中取得了极大的成功。下面是AlexNet网络搭建的一些基本步骤: 1. 准备数据集:AlexNet是在ImageNet数据集上训练的,这是一个包含超过100万张图像和1000个类别的数据集。你可以从ImageNet官网下载数据集。 2. 搭建网络结构:AlexNet共有8个层,其中5个卷积层和3个全连接层。第一层是一个输入层,输入的是224x224x3的图像。接下来是5个卷积层,每个卷积层后面跟着一个最大池化层。最后是3个全连接层,其中最后一个全连接层输出1000个类别的概率。 3. 定义损失函数:在AlexNet中,通常使用交叉熵损失函数来计算模型的损失。在训练过程中,我们需要将该损失函数最小化。 4. 定义优化器:常用的优化器有SGD、Adam等,我们需要选择一个适合的优化算法来训练模型。 5. 训练网络:在训练过程中,我们需要将数据集分批次送入网络进行计算,并根据损失函数和优化器对网络的参数进行更新,直到达到预设的训练轮数或者损失函数收敛。 6. 测试网络:在测试过程中,我们需要使用测试集对训练好的模型进行验证,计算模型的准确率和其他性能指标。可以使用混淆矩阵来评估模型分类性能。 7. 优化模型:如果模型在测试集上的表现不够好,我们可以通过调整网络结构、改变损失函数、调整学习率等方法来优化模型,使其更好地适应数据集。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值