Alexnet网络学习

目录:

一、Alexnet网络介绍:

二、CIFAR-10数据集的简介:

三、什么是卷积、池化、dropout及其作用?

四、alexnet提出的意义和优缺点?

五、利用CIFAR数据集训练alexnet网络,并识别图像

参考:

 

一、Alexnet网络介绍:

 

AlexNet的一些参数和结构图:

卷积层:5层

全连接层:3层

深度:8层

参数个数:60M

神经元个数:650k

分类数目:1000类

 

二、CIFAR-10数据集的简介:

网址:http://www.cs.toronto.edu/~kriz/cifar.html

CIFAR-10 是由Hinton 的学生Alex Krizhevsky 和Ilya Sutskever 整理的一个用于识别普适物体的小型数据集。

该数据集一共有60000张图片,图片大小为32*32*3的彩色图片,一共包含10类,分别是:飞机( airplane )、汽车( automobile )、鸟类( bird )、猫( cat )、鹿( deer )、狗( dog )、蛙类( frog )、马( horse )、船( ship )和卡车( truck )。其中包括50000张训练集,10000张测试集。

与MNIST数据集相比:

CIFAR数据集是RGB彩色图像,MNIST图像是灰度图像;

CIFAR数据集的大小为32*32,MNIST图像大小为28*28;

CIFAR-10数据集被划分成5个训练的batch和1个测试的batch

 

三、什么是卷积、池化、dropout及其作用?

卷积:从一副大的图像中随机选取一个小块,从小块中学习得到一些特征;只关注局部特征

作用:减小参数量与权值共享

池化:对输入特征进行压缩,降低过拟合

作用:降采样,减少参数,平移不变性

dropout:在训练神经网络时,以概率p随机丢失一些神经元和神经结点,进行训练,提高网络的泛华能力,降低过拟合。(随机的删掉一半隐藏层中的神经元)

 

 

四、alexnet提出的意义和优缺点?

意义:Alexnet网络为后续CNN甚至是RCNN网络打下了基础

优缺点:使用RELU作为激活函数,加快了收敛速度。使用dropout避免过拟合;使用data augmentation 扩增数据集

stride < kernei_size 那么就会出现重叠池化现象,有利于防止过拟合。

但是有60百万个参数,计算量比较大;

 

五、利用CIFAR数据集训练alexnet网络,并识别图像

 

参考:1.Tensorflow深度学习之二十:CIFAR-10数据集介绍

https://blog.csdn.net/DaVinciL/article/details/78793067

2.从AlexNet理解卷积神经网络的一般结构https://blog.csdn.net/chaipp0607/article/details/72847422

3.经典卷积神经网络结构——LeNet-5、AlexNet、VGG-16

https://www.cnblogs.com/wuliytTaotao/p/9544625.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AlexNet是一个深度神经网络模型,用于图像分类和对象识别。它由Hinton等人在2012年的ImageNet竞赛中提出,并在图像分类任务上取得了显著的成功。 迁移学习是指将已经在一个任务上训练好的模型应用于另一个任务上。在AlexNet的情况下,我们可以使用预先训练的AlexNet模型,将其应用于我们自己的图像分类任务中。 具体地,我们可以使用AlexNet预训练的权重和卷积层来提取图像特征,然后将其输入到我们自己的全连接层中进行分类。这种方法可以帮助我们使用少量的数据来训练一个高效的图像分类器。 在Keras中,我们可以使用预训练的AlexNet模型来进行迁移学习。以下是一个示例代码,展示了如何使用AlexNet进行迁移学习: ``` from keras.applications import AlexNet from keras.layers import Dense, Flatten from keras.models import Model # 加载预训练的AlexNet模型 base_model = AlexNet(weights='imagenet', include_top=False) # 创建自己的全连接层 x = base_model.output x = Flatten()(x) x = Dense(1024, activation='relu')(x) predictions = Dense(num_classes, activation='softmax')(x) # 构建新的模型 model = Model(inputs=base_model.input, outputs=predictions) # 冻结预训练的权重 for layer in base_model.layers: layer.trainable = False # 编译模型 model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) # 训练模型 model.fit(train_data, train_labels, epochs=10, validation_data=(val_data, val_labels)) ``` 在上面的代码中,我们首先加载了预训练的AlexNet模型,并创建了自己的全连接层。然后,我们构建了一个新的模型,其中输入是AlexNet的输入,输出是我们自己的预测。我们还冻结了预训练的权重,以便只训练我们自己的全连接层。最后,我们编译和训练了模型。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值