avatar
Articles
45
Tags
19
Categories
5

Home
Archives
Tags
Categories
Link
Xavier's blog
Search
Home
Archives
Tags
Categories
Link

Xavier's blog

D2L: ResNet
Created2022-09-15|Machine Learning|Neural-Network•Dive-Into-Deep-Learning
ResNetConcept and Principle 加更多的层不一定总是改进精度 新的层可能是使模型收敛范围偏差到一个不符合预期的区域 ResNet使各层更容易学会恒等变换,从而更容易使模型收敛范围达到Nested function classes 残差块 基本的ResBlock结构如下,f(x)+x保证了包含原收敛范围 具体使用时,ResBlock的设计细节 ResNet架构一般来说现在的主流设计架构就是接入一个Stage(7x7Conv-3x3MP),之后再连接具体想要的网络架构,ResNet架构如下也是这种设计思想,具体架构如下 Tricks 实际应用中,Res34用的最多,达不到要求可以继续用Res50 Res152、Res101一般用来刷榜 Implementation12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667from torch impo ...
D2L: Batch Normalization
Created2022-09-15|Machine Learning|Neural-Network•Dive-Into-Deep-Learning
Batch NormalizationConcept and Principle 问题 损失出现在最后,由BP算法和梯度消失,后面的层训练的会更快 数据在最前面,前面的层训练的慢且前面的层变化后面的层也要跟着变(抽取的底层信息变化让后面的层要重新学),所以后面的层要重新学习很多次,导致收敛变慢 考虑在学习底部层时避免变化顶部层 批量归一化 固定小批量里面的均值和方差,然后再做额外的调整(可学习的参数gama和beta) 是线性变换 作用在 全连接层和卷积层输出后,激活函数前 全连接层和卷积层输入前 对于全连接层作用于特征维 对于卷积层作用于通道维(将每一个像素都当作一个样本,通道数就是一个样本的特征数) 批量归一化在做什么? 最初的论文是想用它来减少内部协变量转移(使每一层的输出分布变化不那么剧烈) 后续有论文指出,批量归一化可能只是在小批量中加入噪声控制模型复杂度 总结 批量归一化固定小批量中的均值和方差,然后学习出适合的偏移和缩放 批量归一化可以加速收敛(可以设置更大的学习率),一般不改变模型精度 Implementation12345678910111213 ...
D2L: GoogLeNet
Created2022-09-15|Machine Learning|Neural-Network•Dive-Into-Deep-Learning
GoogLeNetConcept and Principle Inception块 4个路径从不同层面抽取信息,然后再输出通道合并,最终输出高宽与输入相等,要把更多的通道数留给比较重要的通道 要达到相同的输出通道数,Inception块与直接的3x3或5x5卷积相比,参数和计算复杂度更低 GoogLeNet 5个stage(高宽减半一次就是一个stage),9个Inception块 Inception后续具有多个变种 Inception-BN(v2):使用batch normalization Inception-v3:修改了inception块 Inception-v4:使用了残差连接 Implementation12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364import torchfrom torch import nn,optimimport d2lclass Inceptio ...
D2L: NiN
Created2022-09-15|Machine Learning|Neural-Network•Dive-Into-Deep-Learning
NiNConcept and Principle 全连接层的问题: 全连接层参数比卷积层的参数多很多,导致很多的内存(显存)及计算带宽占用 全连接层容易带来过拟合 NiN思想:完全不要全连接层 NiN块: 一个卷积层后跟两个起到全连接层的作用的卷积层 起到全连接层的作用的卷积层为1x1步幅为1无填充的卷积层 NiN架构 无全连接层 交替使用NiN块和步幅为2的最大池化层 最后使用全局平均池化层得到输出(通道数是类别数) Implementation1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253import torchfrom torch import nn,optimclass NiNBlock(nn.Module): def __init__( self,in_channels,out_channels, kernel_size,stride,padding ): sup ...
D2L: VGGNet
Created2022-09-15|Machine Learning|Neural-Network•Dive-Into-Deep-Learning
VGGNetConcept and Principle AlexNet的设计很随意,如何变大变深无规律性,VGG探讨了如何对CNN进行扩展 如何更深更大? 更多全连接层(太贵) 更多的卷积层 将卷积层组合成块(VGG) VGG块 使用小卷积核深网络比大小卷积核浅网络效果好 3x3卷积层(n层、m通道) 2x2最大池化层 VGG架构 多个VGG块后接全连接层 不同次数的重复块得到不同架构(VGG-16、VGG-19等) Implementation1234567891011121314151617181920212223242526272829303132333435363738394041424344454647import torchfrom torch import dropout, nn,optimimport d2l# 返回VGG块def vgg_block(num_convs,in_channels,out_channels): layers=[] for _ in range(num_convs): layers.append( ...
1…345…9
avatar
Xavier
Articles
45
Tags
19
Categories
5
Follow Me
Recent Post
Transaction2023-02-24
Index2023-02-20
Database Designment2023-02-18
Stored Procedure & Trigger2023-02-18
Basic SQL2023-02-16
Categories
  • Computer Literacy7
  • Genesis1
  • Machine Learning26
  • MySQL10
  • notes1
Tags
Asynchronous-programming Compile Computer Vision DI DIP Design Patterns Dive-Into-Deep-Learning Generative-Model Hello IoC MultiThreading-programming Neural Network Neural-Network Residual-learning Seq2Seq-Model git hexo papers typography
Archives
  • February 202310
  • September 202226
  • March 20222
  • February 20221
  • January 20224
  • October 20212
©2020 - 2023 By Xavier
Framework Hexo|Theme Butterfly
Have a good day !
Local search
Loading the Database