def firstBlock(input): tensor = factory.zeroPadding(input, (3, 3)) tensor = factory.convolutionBlock(tensor, '', '1', 64, (7, 7), (2, 2)) tensor = factory.zeroPadding(tensor) tensor = factory.maxPooling(tensor, (3, 3), (2, 2)) return tensor
def blockPool(input): tensor = factory.averagePooling(input, (3, 3), (3, 3)) tensor = factory.convolutionBlock(tensor, 'inception_4a_pool_', '', 128, (1, 1)) tensor = factory.zeroPadding(tensor, (2, 2)) return tensor
def secondBlock(input): tensor = factory.convolutionBlock(input, '', '2', 64, (1, 1)) tensor = factory.zeroPadding(tensor) #tensor = factory.maxPooling(tensor, (3,3), (2,2)) #todo: do we need here maxpool? return tensor
def blockPool(input): tensor = factory.maxPooling(input, (3, 3), (2, 2)) tensor = factory.convolutionBlock(tensor, 'inception_3a_pool_', '', 32, (1, 1)) tensor = factory.zeroPadding(tensor, ((3, 4), (3, 4))) return tensor
def block3x3(input): tensor = factory.convolutionBlock(input, 'inception_4e_3x3_', '1', 160, (1, 1)) tensor = factory.zeroPadding(tensor) tensor = factory.convolutionBlock(tensor, 'inception_4e_3x3_', '2', 256, (3, 3), (2, 2)) return tensor
def block5x5(input): tensor = factory.convolutionBlock(input, 'inception_4e_5x5_', '1', 64, (1, 1)) tensor = factory.zeroPadding(tensor, (2, 2)) tensor = factory.convolutionBlock(tensor, 'inception_4e_5x5_', '2', 128, (5, 5), (2, 2)) return tensor
def block3x3(input): tensor = factory.convolutionBlock(input, 'inception_4a_3x3_', '1', 96, (1, 1)) tensor = factory.zeroPadding(tensor) tensor = factory.convolutionBlock(tensor, 'inception_4a_3x3_', '2', 192, (3, 3)) return tensor
def thirdBlock(input): tensor = factory.convolutionBlock(input, '', '3', 192, (3, 3)) tensor = factory.zeroPadding(tensor) tensor = factory.maxPooling(tensor, (3, 3), (2, 2)) return tensor
def blockPool(input): tensor = factory.averagePooling(input, (3, 3), (2, 2)) tensor = factory.zeroPadding(tensor, ((0, 1), (0, 1))) return tensor