这里是stackoverflow的新功能!
我对已实施的inception_v2模型有一个疑问:在models / research / slim / nets / inception_v2.py link text文件中,可以找到已实施的inception v2“ CNN”树,该树由以下部分组成: conv2d(7x7)-> maxpool(3x3)-> conv2d(1x1)-> conv2d(3x3)-> maxpool(3x3)-> mixed3b-> ...等等。
为帮助代码的“阅读器”了解每一层的输入大小,作者对代码的输入大小进行了注释(从224x224x3输入开始)。现在,就在mixed_3b层(起始模块,行149)之前,输入是28x28x192,而输出是:28x28x256(第181行)。 mixed_3b由4个分支组成:branch_0,branch_1,branch_2,branch_3,其中:
branch_0 = conv2d(1x1)
branch_1 = conv2d(1x1) -> conv2d(3x3)
branch_2 = conv2d(1x1) -> conv2d(3x3) -> conv2d(3x3)
branch_3 = conv2d(1x1)
后来被连接到一个尺寸为28x28x256的张量(我理解深度)。
现在我的第一个问题是:分支1和2的输出如何与blend_3b层中分支0和3的输出产生相同的结果?我的意思是,假设所有卷积都具有padding ='VALID',且步幅= 0(这些未定义为输入),则分支0和3的输出必须为:
out_width_0_and_3 = (28-1+1)/1 = 28
out_height_0_and_3 = (28-1+1)/1 = 28
例如,分支1必须产生:
out_width_(1x1) = (28-1+1)/1 = 28
out_width_(3x3) = (out_width_(1x1)-3+1)/1 = (28-3+1)/1 = 26 (?)
那是branch_1的输出必须是26x26(具有给定的深度)吗?但是,如何将其与28x28并置呢?也许我想念什么?