GoogLeNet计算过程

量太大,欢迎大家指错
GoogLeNet:
Input:
10x3x224x224
按照我们的要求将数据集reshape成我们期望的格式,即3channel,height224,width224,一次处理10张(暂且按一张处理)

Layer 1 7x7 convolution
7x7,输出64,Padding为3,Stride为3,还有一个bias;
首先在输入加3depth的padding,共(224*3*4+3*3*4)*3=8172次操作,变成3*230*230;
对于每个filter,每一步有3*7*7个权重,1个bias,即共(3*7*7+112*112)个参数,共3*7*7次乘法和加法,共要进行112*112步,即3*7*7*112*112次乘、加法,共有64个filter,共(3*7*7+112*112)*64个参数,则需要3*7*7*112*112*64=118,013,952次乘、加法,输出为112*112*64
ReLU:做112*112*64=802,816次的max(0,x)比较操作,输出依然为112*112*64

Layer 2 3x3 max pooling
3x3的核,stride为2,无padding
输入为112*112*64,每个112*112要进行56*56次的9个数取最值操作,即共56*56*64=200,704次的9个数取最值操作,共56*56*64*8=1,605,632次比较操作,输出为56*56*64
Layer 3 Local Response Normalization
N:64
n:5
alpha: 0.0001
beta: 0.75
i=1:1——3 4个乘,3个加,1个开beta方,1个除法;
i=2:1——4 5个乘,4个加,1个开beta方,1个除法;
i=3:1——5 6个乘,5个加,1个开beta方,1个除法;
i=4:1——6 7个乘,6个加,1个开beta方,1个除法;
i=5:2——7 7个乘,6个加,1个开beta方,1个除法;
: 7个乘,6个加,1个开beta方,1个除法;
i=61:57——62 7个乘,6个加,1个开beta方,1个除法;
i=61:58——63 7个乘,6个加,1个开beta方,1个除法;
i=62:59——63 6个乘,5个加,1个开beta方,1个除法;
i=63:60——63 5个乘,4个加,1个开beta方,1个除法;
i=64:61——63 4个乘,3个加,1个开beta方,1个除法;
对于每一个(x,y),共有:436个乘,372个加,64个开beta方,64个除法
56*56个(x,y),共有:1,367,296个乘,1,166,592个加,200,704个开beta方,200,704个除法, 输出为56*56*64

Layer 4 1x1 convolution/ 3x3_reduce
1x1,输出64,还有一个bias;
输入为56*56*64,对于每个filter,每一步有64*1*1个权重,1个bias,即共(64+36*36)个参数,共64次乘法和加法,共要进行56*56步,即64*56*56次乘、加法,共有64个filter,共(64+56*56)*64个参数,则需要64*56*56*64=12,845,056次乘、加法,输出为56*56*64
ReLU:做56*56*64=200,704次的max(0,x)比较操作,输出依然为56*56*64
Layer 5 3x3 convolution
3x3,输出192,padding为1,1个bias
输入为56*56*64,首先在输入加1depth的padding,共57*4*64=14,592次操作,变成58*58*64;
对于每个filter,每一步有64*3*3个权重,1个bias,即共(64*3*3+56*56)个参数,共64*3*3次乘法和加法,共要进行56*56步,即64*3*3*56*56次乘、加法,共有192个filter,共(64*3*3+56*56)*192个参数,则需要64*3*3*56*56*192=346,816,512次乘、加法,输出为56*56*192
ReLU:做56*56*192=602,112次的max(0,x)比较操作,输出依然为56*56*192

Layer 6 Local Response Normalization
N:192
n:5
alpha: 0.0001
beta: 0.75
i=1:1——3 4个乘,3个加,1个开beta方,1个除法;
i=2:1——4 5个乘,4个加,1个开beta方,1个除法;
i=3:1——5 6个乘,5个加,1个开beta方,1个除法;
i=4:1——6 7个乘,6个加,1个开beta方,1个除法;
i=5:2——7 7个乘,6个加,1个开beta方,1个除法;
: 7个乘,6个加,1个开beta方,1个除法;
: 7个乘,6个加,1个开beta方,1个除法;
i=188:185——190 7个乘,6个加,1个开beta方,1个除法;
i=189:186——191 7个乘,6个加,1个开beta方,1个除法;
i=190:187——191 6个乘,5个加,1个开beta方,1个除法;
i=191:188——191 5个乘,4个加,1个开beta方,1个除法;
i=192:189——191 4个乘,3个加,1个开beta方,1个除法;
对于每一个(x,y),共有:1332个乘,1140个加,192个开beta方,192个除法
56*56个(x,y),共有:4,177,152个乘,3,575,040个加,602,112个开beta方,602,112个除法, 56*56*192

Layer 7 3x3 max pooling
3x3的核,stride为2,无padding
输入为56*56*192,每个56*56要进行28*28次的9个数取最值操作,即共28*28*192=150,528次的9个数取最值操作,共28*28*192*8=1,204,224次比较操作,输出为28*28*192

Layer 8 inception_3a
1x1 convolution
1x1,输出64,还有一个bias;
输入为28*28*192,对于每个filter,每一步有192*1*1个权重,1个bias,即共(192+28*28)个参数,共192次乘法和加法,共要进行28*28步,即192*18*18次乘、加法,共有64个filter,共(192+28*28)*64=62,464个参数,则需要192*28*28*64=9,633,792次乘、加法,输出为28*28*64
ReLU:做28*28*64=50,176次的max(0,x)比较操作,输出依然为28*28*64
3x3_reduce(1x1 convolution)
1x1,输出96,还有一个bias;
输入为28*28*192,对于每个filter,每一步有192*1*1个权重,1个bias,即共(192+28*28)个参数,共192次乘法和加法,共要进行18*18步,即192*28*28次乘、加法,共有96个filter,共(192+28*28)*96=93,696个参数,则需要192*28*28*96=14,450,688次乘、加法,输出为28*28*96
ReLU:做28*28*96=75,264次的max(0,x)比较操作,输出依然为28*28*96
3x3 convolution
3x3,输出128,padding为1,1个bias
输入为28*28*96,首先在输入加1depth的padding,共29*4*96=11,136次操作,变成30*30*64;
对于每个filter,每一步有96*3*3个权重,1个bias,即共(96*3*3+28*28)个参数,共96*3*3次乘法和加法,共要进行28*28步,即96*3*3*28*28次乘、加法,共有128个filter,共(96*3*3+28*28)*128=210,944个参数,则需要96*3*3*28*28*128=86,704,128次乘、加法,输出为28*28*128
ReLU:做28*28*128=100,352次的max(0,x)比较操作,输出依然为28*28*128
5x5_reduce(1x1 convolution)
1x1,输出16,还有一个bias;
输入为28*28*192,对于每个filter,每一步有192*1*1个权重,1个bias,即共(192+28*28)个参数,共192次乘法和加法,共要进行28*28步,即192*28*28次乘、加法,共有16个filter,共(192+28*28)*16=15,616个参数,则需要192*28*28*16=2,408,448次乘、加法,输出为28*28*16
ReLU:做28*28*16=12,544次的max(0,x)比较操作,输出依然为28*28*16
5x5 convolution
5x5,输出32,padding为2,1个bias
输入为28*28*16,首先在输入加2depth的padding,共60*4*16=3,840次操作,变成32*32*16;
对于每个filter,每一步有16*5*5个权重,1个bias,即共(16*5*5+28*28)个参数,共16*5*5次乘法和加法,共要进行28*28步,即16*5*5*28*28次乘、加法,共有32个filter,共(16*5*5+28*28)*32=37,888个参数,则需要16*5*5*28*28*32=10,035,200次乘、加法,输出为28*28*32
ReLU:做28*28*32=25,088次的max(0,x)比较操作,输出依然为28*28*32
3x3 max pooling
3x3的核,stride为1,padding为1
输入为28*28*192,,首先在输入加1depth的padding,共29*4*192=22,272次操作,变成30*30*192;
每个30*3

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值