GoogLeNet
7 memberslucid.models.vision.googlenetGoogLeNet (Inception v1) family — Szegedy et al., 2014.
Szegedy, Christian, et al. "Going Deeper with Convolutions." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015, pp. 1–9.
GoogLeNet (Inception v1) is the ILSVRC-2014 classification winner and introduced the Inception module — a multi-branch building block that lets a single layer apply convolutions at several receptive-field scales in parallel and concatenate their outputs. The motivation is that natural images contain salient structure at multiple sizes, and forcing the network to commit to a single kernel per layer wastes capacity.
Each Inception module computes, in parallel, a convolution, a convolution, a convolution, and a max-pool branch. To keep the computation tractable, cheap bottlenecks are placed before the larger spatial convolutions and after the pooling branch. Concatenating along the channel axis gives the next layer an enriched, multi-scale feature representation. Formally, an Inception block produces
where each is a learned convolution and each is a dimensionality-reducing projection.
GoogLeNet stacks nine such modules into a 22-layer network with only 5 M parameters — roughly 12× fewer than AlexNet — while achieving a top-5 error of 6.67%. Two auxiliary classifiers were attached to intermediate layers during training to combat vanishing gradients and add a regularising effect; they are discarded at inference. The Inception family launched here led to Inception v2/v3 (factorised convolutions, label smoothing) and eventually Inception-ResNet.
Classes
GoogLeNetConfig1 methodsConfiguration for GoogLeNet (Inception v1).
GoogLeNet4 methodsGoogLeNet (Inception v1) feature-extracting backbone.
GoogLeNetForImageClassification2 methodsGoogLeNet image classifier with optional auxiliary classifiers.
GoogLeNetOutput1 methodsStructured forward output for GoogLeNetForImageClassification.