图 2.3 AlexNet的结构
在图2.3中, 输入图像从左侧进入并经过五个堆叠的过滤器, 每个过滤器产生许多输出图像 。 在每个过滤器之后, 图像的大小都会减小, 如注释所示 。 经过最后一个过滤器后产生一个4096个元素的一维向量, 并产生1000个分类类别的输出概率, 每一个代表一个输出类别 。
为了使用AlexNet模型产生一个输出图片, 我们可以创建AlexNet类的实例 。 按照下面的方法来做:
此时, alexnet是一个可以运行alexnet结构的对象 。 对于我们来说, 现在还没有必要了解这个体系结构的细节 。 目前, AlexNet只是一个不透明的对象, 可以像函数一样调用 。 通过向alexnet提供一些大小标准的输入数据(我们将很快看到这些输入数据应该是什么), 我们可以在网络中进行前向传播 。 也就是说, 输入通过第一组神经元后, 其输出将被推送到下一组神经元, 一直到最终输出 。 实际上, 假设我们有一个正确类型的输入对象, 我们可以向前运行最终产生output=alexnet(input) 。
但如果我们这样做了, 我们将通过整个网络传输数据, 而这产生的只是一些垃圾!这是因为网络是未初始化的:它的权值(对输入做加法和乘法的数字)没有经过任何训练, 网络本身是一个空白的(或者更确切地说, 随机的)石板 。 我们要么从头开始训练, 要么从以前的训练中加载, 我们现在要做的就是这些 。
为此, 让我们回到模型模块 。 我们了解到大写名称对应于实现流行的计算机视觉结构的类 。 另一方面, 小写名称是用预定义的层和单位数实例化模型的函数, 可以选择下载并加载预训练的权重 。 请注意, 使用这些函数中的一个并没有什么必要, 它们只是方便地实例化模型, 而模型中包含许多层和单元, 这些层和单元与预训练网络的构建方式相匹配 。
使用resnet101函数, 我们现在将实例化一个101层的卷积神经网络 。 简单地说, 在2015年残差网络出现之前, 在这样的深度上实现稳定的训练被认为是极其困难的 。 残差网络使用了一个小技巧使之成为可能, 通过这种方法使得当年如同扫荡一般击败了其他几个基线方法 。
现在我们创建一个网络实例 。 我们将传递一个参数, 该参数将指示函数下载在ImageNet数据集上训练的resnet101的权重, 其中包含120万个图像和1000个类别:
当我们盯着下载进度时, 我们可以花一点时间观察一下resnet101的4450万个参数, 其中有很多参数可以自动优化!
好吧, 我们得到了什么?既然我们很好奇, 我们就来看看resnet101是什么样子 。 我们可以通过打印返回模型的值来实现 。 这为我们提供了与2.3中看到的信息相同的文本表示, 提供了有关网络结构的详细信息 。 对于现在的我们来说这个信息量有些太大了, 但随着我们继续阅读本书, 我们将对此代码所告诉我们的内容的理解不断增强:
我们在这里看到的是模块, 每行代表一个模块 。 请注意, 它们与Python模块没有任何共同之处:它们是单独的操作, 是神经网络的构建块 。 在其他深度学习框架中, 它们也被称为层 。
如果向下滚动, 我们会看到许多Bottleneck模块一个接一个地重复(101个!), 包含卷积和其他模块 。 这是一个典型的用于计算机视觉的深层神经网络的解剖结构:一个或多个过滤器和非线性函数的顺序级联, 最后一层(fc)为1000个输出类(out_features)中的每一个产生预测分数 。
- 淘小铺和淘宝联盟各有什么优势?具体情况介绍
- 英雄联盟排位战队有哪些 英雄联盟战队排行榜在哪看
- 淘宝联盟服务商实力分升级了哪些?怎么加分?
- 淘宝联盟怎么推广自己的店铺?技巧介绍!
- 推广员如何向客户宣传家具做展销的句子? 卖板材又做全屋定制什么搞联盟
- 淘宝联盟设置佣金规则有哪些?怎么设置佣金?
- 淘宝联盟内容库是什么?内容商品库在哪?
- 淘宝联盟内容商品库加入有难度吗?怎么加入?
- 女英雄的历史事件 女英雄有哪些角色
- 洛基里的女的是谁 复仇者联盟人物介绍洛基
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
