第九课:EfficientNet学习

阅读: 评论:0

第九课:EfficientNet学习

第九课:EfficientNet学习

前言

随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。来源于哔哩哔哩博主“霹雳吧啦Wz”,博主学习作为笔记记录,欢迎大家一起讨论学习交流。

一、搭建EfficientNet网络

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

二、代码部分

代码如下(示例):

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context

代码如下(示例):

data = pd.read_csv('.data.csv')
print(data.head())

该处使用的url网络请求的数据。

3.predict.py——得到训练好的网络参数后,用自己找的图像进行分类测试

在这里插入代码片

三、EfficientNet V1

之前的论文是单独增加图像的分辨率、网络深度、以及网络的宽度探究的影响,EfficientNet是联合讨论输入图像的分辨率、网络深度和宽度的影响。

a图是原始的基本图像,a-d分别是在a的基础上增加图像的宽度,深度和分辨率。宽度就是增加深度,即卷积核的个数。e是EfficientNet同时增加图像的深度、宽度和分辨率。

增加深度会获得复杂、丰富的特征但是深度过深可能面临梯度消失,训练困难。增加宽度即卷积核的个数会获得高细粒度的特征但是对于宽度很大而深度很浅的网络很难学到更深层次的特征。增加网络分辨率,可以理解为图像越清晰,得到更高的细粒度特征,但是会增加计算量。

上图也表明同时增加深度、宽度和分辨率会有较好效果。在理论上,相同的FLOPs数目,计算量相同,也会效果更好。

EfficientNet-B0 也是通过网络搜索技术得到的。

一共有1-9个stage,stride可以通过分辨率进行得到:比如224x224到112x112,步距为2。分辨率是输入的分辨率。Ci表示输出通道数,Li表示每一个operator重复多少次。MBConv是Moblie Convolutional。

第一个模块步距为2,后面是1.


MB Conv和Mobilenet V3采用类似的结构。

第一个卷积层的卷积核的个数是输入特征矩阵channel的n倍。前面的Conv后面的数字就是这个n。

DW卷积输入和输出特征矩阵的通道数保持不变。

其实和MoblienetV3 SE模块也差不多,FC1的节点是输出矩阵channel的1/4,但是这里的输出矩阵是输入MB Conv模块的输入矩阵的channel,而FC2的节点是和输出矩阵的channel一样,要保证能够相乘,这里的Chanel是DW卷积之后的channel。两个全连接层之后的激活函数也不一样。

EfficientNetB0-B7注意两个倍率因子,深度倍率因子和宽度倍率因子。

性能对比:准确率比较高、参数最小、FLOPS最小。输入图像分辨率比较大,占GPU内存。

三、EfficientNet V2

本文发布于:2024-02-01 10:16:18,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170675378035927.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:第九课   EfficientNet
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23