2.1.1 获取用于图像识别的预训练网络
如上所述,我们现在将为自己配备在ImageNet上训练的网络。 为此,我们将看一下TorchVision项目(https://github.com/pytorch/vision),该项目包含一些计算机视觉性能最佳的神经网络体系结构,例如AlexNet(http://mng.bz/lo6z)、ResNet(https://arxiv.org/pdf/1512.03385.pdf)和Inception v3(https://arxiv.org/pdf/1512.00567.pdf)。 它还可以轻松访问ImageNet等数据集和其他实用程序,以快速掌握PyTorch中的计算机视觉应用程序。在本书中,我们将深入探讨其中的一些内容。 现在,让我们加载并运行两个网络:首先是AlexNet,这是图像识别领域的早期突破性网络之一; 然后是残差网络,简称ResNet,在2015年赢得了ImageNet分类,检测和本地化竞赛等奖项。如果您没有在第1章中启动PyTorch并开始运行,那么现在是进行此操作的好时机。
可以在torchvision.models中找到预定义的模型(code/p1ch2/2_pre_trained_networks.ipynb):
# In[1]:
from torchvision import models
我们可以看一下实际模型:
# In[2]:
dir(models)
# Out[2]:
['AlexNet',
'DenseNet',
'Inception3',
'ResNet',
'SqueezeNet',
'VGG',
...
'alexnet',
'densenet',
'densenet121',
...
'resnet',
'resnet101',
'resnet152',
...]
大写的名称指的是实现许多流行模型的Python类。 它们的体系结构不同,即在输入和输出之间发生的操作安排不同。 小写名称是便利函数,可返回从这些类实例化的模型,有时具有不同的参数集。 例如,resnet101返回具有101层的ResNet实例,resnet18具有18层,依此类推。 现在,我们将注意力转向AlexNet。
网友评论