欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

5. 9 多路并行的GoogLeNet

程序员文章站 2022-07-14 18:46:35
...

并行连接网络GoogLeNet

GoogLeNet名字的由来。 它是由Google研发,对LeNet表示致敬的。所以命名为GooLeNet


前言

在2014年的ImageNet图像识别挑战赛中,一个名叫GoogLeNet的网络结构大放异彩 [1]。它虽然在名字上向LeNet致敬,但在网络结构上已经很难看到LeNet的影子。GoogLeNet吸收了NiN中网络串联网络的思想,并在此基础上做了很大改进。在随后的几年里,研究人员对GoogLeNet进行了数次改进,本节将介绍这个模型系列的第一个版本。

提示:以下是本篇文章正文内容,下面案例可供参考

一、 Inception块

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

1. 图像

输入
1*1卷积层
1*1卷积层
3*3卷积层
1*1卷积层
5*5卷积层
3*3最大池化层
1*1卷积层
合并通道

2.代码块(以下代码在Colab上调试过)

代码如下(示例):

pip install d2l
from d2l import torch as d2l
import torch
from torch import nn
from torch.nn import function as F

class Inception(nn.Module):
  def __init__(self,in_channels,c1,c2,c3,c4,**kwargs):
    super(Inception,self).__init__(**kwargs)

    self.p1_1 = nn.Conv2d(in_channels,c1,kernel_size=1)

    self.p2_1 = nn.Conv2d(in_channels,c2[0],kernel_size=1)
    self.p2_2 = nn.Conv2d(c2[0],c2[1],kernel_size=3,padding=1)

    self.p3_1 = nn.Conv2d(in_channels,c3[0],kernel_size=1)
    self.p3_2 = nn.Conv2d(c3[0],c3[1],kernel_size=5,padding=2)

    self.p4_1 = nn.MaxPool2d(kernel_size=3,stride=1,padding=1)
    self.p4_2 = nn.Conv2d(in_channels,c4,kernel_size=1)
  
  def forward(self,x):
    p1 = F.relu(self.p1_1(x))
    p2 = F.relu(self.p2_2( F.relu(self.p2_1(x))))
    p3 = F.relu(self.p3_2(F.relu(self.p3_1(x))))
    p4 = F.relu(self.p4_2(F.relu(self.p4_1(x))))

    return torch.cat((p1,p2,p3,p4),dim=1)
      

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


# 三、训练模型

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。