{
 "id": "ep0cyh1hnt",
 "slug": "fully-convolutional-network",
 "title": "Fully convolutional network",
 "updated": "2026-10-15",
 "topic_path": [
  {
   "id": "technology",
   "label": "Technology and the built world",
   "api_url": "https://www.edgepedia.org/api/v1/topics/technology"
  },
  {
   "id": "technology.computing",
   "label": "Computing and digital systems",
   "api_url": "https://www.edgepedia.org/api/v1/topics/technology.computing"
  },
  {
   "id": "technology.computing.ai",
   "label": "Artificial intelligence and data",
   "api_url": "https://www.edgepedia.org/api/v1/topics/technology.computing.ai"
  },
  {
   "id": "technology.computing.ai.ml_computation",
   "label": "Machine learning and neural computation",
   "api_url": "https://www.edgepedia.org/api/v1/topics/technology.computing.ai.ml_computation"
  },
  {
   "id": "technology.computing.ai.neural_deep",
   "label": "Neural networks and deep learning",
   "api_url": "https://www.edgepedia.org/api/v1/topics/technology.computing.ai.neural_deep"
  },
  {
   "id": "technology.computing.ai.neural_deep.alpha-a-to-h",
   "label": "Titles A to H",
   "api_url": "https://www.edgepedia.org/api/v1/topics/technology.computing.ai.neural_deep.alpha-a-to-h"
  }
 ],
 "geo": [
  {
   "id": "geo.nongeo.t2001.technology.computing.ai.neural_deep",
   "label": "Non-geographic · 2001 to 2020: Neural networks and deep learning",
   "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t2001.technology.computing.ai.neural_deep",
   "path": [
    {
     "id": "geo.nongeo",
     "label": "Non-geographic",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo"
    },
    {
     "id": "geo.nongeo.t2001",
     "label": "Non-geographic · 2001 to 2020",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t2001"
    },
    {
     "id": "geo.nongeo.t2001.technology",
     "label": "Technology and the built world",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t2001.technology"
    },
    {
     "id": "geo.nongeo.t2001.technology.computing",
     "label": "Computing and digital systems",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t2001.technology.computing"
    },
    {
     "id": "geo.nongeo.t2001.technology.computing.ai",
     "label": "Artificial intelligence and data",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t2001.technology.computing.ai"
    },
    {
     "id": "geo.nongeo.t2001.technology.computing.ai.ml_computation",
     "label": "Machine learning and neural computation",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t2001.technology.computing.ai.ml_computation"
    },
    {
     "id": "geo.nongeo.t2001.technology.computing.ai.neural_deep",
     "label": "Neural networks and deep learning",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t2001.technology.computing.ai.neural_deep"
    }
   ]
  }
 ],
 "excerpt": "A fully convolutional network (FCN) is a neural network architecture for image segmentation that replaces fully connected layers with convolutions, producing dense per-pixel predictions from inputs of any size.",
 "snippet": "A fully convolutional network (FCN) is a neural network architecture for image segmentation that replaces fully connected layers with convolutions, producing dense per-pixel predictions from inputs of any size.",
 "node": "technology.computing.ai.neural_deep.alpha-a-to-h",
 "markdown": "# Fully convolutional network\n\nA fully convolutional network (FCN) is a neural network architecture for image segmentation that replaces a classifier's fully connected layers with convolutional layers, so the network produces a dense per-pixel prediction map from an input of any size. Introduced for semantic segmentation, the original FCN reached 62.2% mean intersection over union (mean IU) on [PASCAL VOC](https://www.edgepedia.org/pascal-voc) 2012, a 20% relative improvement at the time, with inference in under one fifth of a second per image.<sup>[1](https://openaccess.thecvf.com/content_cvpr_2015/html/Long_Fully_Convolutional_Networks_2015_CVPR_paper.html)</sup> Because every layer is convolutional (or pointwise), the network keeps spatial information that fully connected layers discard and avoids the fixed input sizes those layers impose.<sup>[2](https://www.cs.ubc.ca/%7Eschmidtm/Courses/440-W21/L35.pdf)</sup>\n\n| Key fact | Value |\n|---|---|\n| Introducing paper | Shelhamer, Long, Darrell, IEEE TPAMI 2016<sup>[3](https://doi.org/10.1109/tpami.2016.2572683)</sup> |\n| Journal edition result | 67.2% mean IU on PASCAL VOC 2012, ~0.1 s inference<sup>[4](https://arxiv.org/html/1605.06211v1)</sup> |\n| Speedup over patchwise pipelines | 114× (convnet only) to 286× (overall) versus R-CNN/SDS-style approaches<sup>[5](https://arxiv.org/abs/1411.4038)</sup> |\n| Skip variants | FCN-32s, FCN-16s, FCN-8s, fusing progressively finer layers<sup>[1](https://openaccess.thecvf.com/content_cvpr_2015/html/Long_Fully_Convolutional_Networks_2015_CVPR_paper.html)</sup> |\n| Training loss | Per-pixel multinomial logistic loss; evaluation by mean pixel IoU<sup>[1](https://openaccess.thecvf.com/content_cvpr_2015/html/Long_Fully_Convolutional_Networks_2015_CVPR_paper.html)</sup> |\n| Main limitation | Coarse output from the prediction layer's pixel stride (32 pixels in FCN-32s)<sup>[1](https://openaccess.thecvf.com/content_cvpr_2015/html/Long_Fully_Convolutional_Networks_2015_CVPR_paper.html)</sup> |\n\n## How it works\n\nA classification network ends in fully connected layers that map a fixed-size feature volume to a class vector. Any fully connected layer is equivalent to a convolution whose kernels cover the entire input region; recasting the layers this way turns the classifier into a network that accepts input of any size and outputs a spatial map of class scores instead of a single vector.<sup>[5](https://arxiv.org/abs/1411.4038)</sup> Each output unit then corresponds to a receptive field in the input, so one forward pass yields a grid of predictions rather than one label.\n\nThe coarse grid must be upsampled to full resolution. Upsampling by a factor \\( f \\) is convolution with a fractional input stride of \\( 1/f \\), implemented as backwards convolution (often called deconvolution) with output stride \\( f \\), and its weights can be learned end-to-end by backpropagation from the pixelwise loss.<sup>[5](https://arxiv.org/abs/1411.4038)</sup> A transposed convolution with stride \\( s \\), padding \\( s/2 \\), and kernel size \\( 2s \\) increases the input's height and width by a factor of \\( s \\).<sup>[6](https://d2l.ai/chapter_computer-vision/fcn.html)</sup>\n\nDeep layers carry semantic information but at coarse resolution; shallow layers carry appearance detail. The FCN's skip architecture combines semantic information from a deep, coarse layer with appearance information from a shallow, fine layer, turning the network's line topology into a directed acyclic graph with edges skipping ahead from shallower to deeper layers.<sup>[1](https://openaccess.thecvf.com/content_cvpr_2015/html/Long_Fully_Convolutional_Networks_2015_CVPR_paper.html)</sup><sup> • </sup><sup>[4](https://arxiv.org/html/1605.06211v1)</sup>\n\n## How it is done\n\n1. Start from a pretrained classifier. The original work adapted AlexNet, VGG, and [GoogLeNet](https://www.edgepedia.org/googlenet), and fine-tuned their learned representations for segmentation<sup>[1](https://openaccess.thecvf.com/content_cvpr_2015/html/Long_Fully_Convolutional_Networks_2015_CVPR_paper.html)</sup>; the reference implementation fine-tunes FCN-32s from the ILSVRC-trained VGG-16 model.<sup>[7](https://github.com/shelhamer/fcn.berkeleyvision.org/tree/master/)</sup>\n2. Convert the fully connected layers to convolutions and append a 1×1 convolution mapping channels to the number of classes (21 for PASCAL VOC 2012), followed by a transposed convolution that restores input resolution.<sup>[6](https://d2l.ai/chapter_computer-vision/fcn.html)</sup>\n3. Initialize upsampling layers to bilinear interpolation. In the original experiments the bilinear kernels were then learned; the reference implementation fixes the final layer's backward convolution weights to bilinear interpolation with no significant accuracy difference and a slight speed-up.<sup>[4](https://arxiv.org/html/1605.06211v1)</sup><sup> • </sup><sup>[7](https://github.com/shelhamer/fcn.berkeleyvision.org/tree/master/)</sup>\n4. Train with a per-pixel multinomial logistic loss and validate with mean pixel intersection over union, averaged over all classes including background, ignoring masked-out ambiguous pixels.<sup>[1](https://openaccess.thecvf.com/content_cvpr_2015/html/Long_Fully_Convolutional_Networks_2015_CVPR_paper.html)</sup>\n5. Build the skip nets in stages, dropping the learning rate 100× from FCN-32s to FCN-16s and 100× more from FCN-16s to FCN-8s, which the authors found necessary for continued improvement.<sup>[4](https://arxiv.org/html/1605.06211v1)</sup>\n\nInputs whose height or width is not divisible by 32 do not generally require cropping into 32-multiple rectangles and averaging overlapping upsampled outputs.<sup>[6](https://d2l.ai/chapter_computer-vision/fcn.html)</sup><sup> • </sup><sup>[1](https://openaccess.thecvf.com/content_cvpr_2015/html/Long_Fully_Convolutional_Networks_2015_CVPR_paper.html)</sup>\n\n## Origin\n\nThe FCN was introduced by Evan Shelhamer, Jonathan Long, and [Trevor Darrell](https://www.edgepedia.org/trevor-darrell) in \"Fully Convolutional Networks for Semantic Segmentation\", published in [IEEE Transactions on Pattern Analysis and Machine Intelligence](https://www.edgepedia.org/ieee-transactions-on-pattern-analysis-and-machine-intelligence) in 2016.<sup>[3](https://doi.org/10.1109/tpami.2016.2572683)</sup> An earlier conference version appeared at CVPR 2015.<sup>[1](https://openaccess.thecvf.com/content_cvpr_2015/html/Long_Fully_Convolutional_Networks_2015_CVPR_paper.html)</sup><sup> • </sup><sup>[5](https://arxiv.org/abs/1411.4038)</sup> The paper states it is the first work to train FCNs end-to-end for pixelwise prediction from supervised pre-training.<sup>[5](https://arxiv.org/abs/1411.4038)</sup>\n\nThe paper credits precursors: Wolf and Platt expanded convnet outputs to 2D detection-score maps; and Ning and colleagues built a convnet for coarse multiclass segmentation of C. elegans tissues with fully convolutional inference.<sup>[1](https://openaccess.thecvf.com/content_cvpr_2015/html/Long_Fully_Convolutional_Networks_2015_CVPR_paper.html)</sup> The input-shifting and output-interlacing trick for dense predictions from coarse outputs was introduced by OverFeat (Sermanet and colleagues, 2013), and the FCN paper offers deconvolution layers as an alternative.<sup>[1](https://openaccess.thecvf.com/content_cvpr_2015/html/Long_Fully_Convolutional_Networks_2015_CVPR_paper.html)</sup><sup> • </sup><sup>[8](https://doi.org/10.48550/arxiv.1312.6229)</sup>\n\n## Variants\n\nThe variant names encode the final prediction stride. FCN-32s predicts from the stride-32 layer alone; FCN-16s fuses pool4 predictions, improving validation performance by 3.0 mean IU to 62.4 in the conference version; FCN-8s adds pool3.<sup>[1](https://openaccess.thecvf.com/content_cvpr_2015/html/Long_Fully_Convolutional_Networks_2015_CVPR_paper.html)</sup> In the journal edition, skips are implemented by scoring each layer with a 1×1 convolution, aligning the scores by interpolation and cropping, and summing them; max fusion was rejected because learning was difficult due to gradient switching.<sup>[4](https://arxiv.org/html/1605.06211v1)</sup>\n\nFCN developments led to U-Net and its derivatives.<sup>[9](https://www.mdpi.com/2075-4418/12/11/2765)</sup> U-Net (Ronneberger, Fischer, and Brox, 2015) combines skip layers and learned deconvolution for pixel labeling of microscopy images<sup>[4](https://arxiv.org/html/1605.06211v1)</sup><sup> • </sup><sup>[10](https://doi.org/10.48550/arxiv.1505.04597)</sup>; U-Net++ fills the space between encoder and decoder with dense convolutional blocks whose horizontal skips cross up to three blocks.<sup>[9](https://www.mdpi.com/2075-4418/12/11/2765)</sup> SegNet introduced max unpooling with saved indices, not present in the FCN paper.<sup>[11](https://tjmachinelearning.com/lectures/1718/fcn/fcn.pdf)</sup> DeepLab (Chen and colleagues, 2016) raises output resolution with atrous convolution and reinforces edges with a fully connected CRF; DeepLab v3 applies atrous convolution with ASPP, increasing mIOU to 70–80%.<sup>[9](https://www.mdpi.com/2075-4418/12/11/2765)</sup><sup> • </sup><sup>[12](https://doi.org/10.48550/arxiv.1606.00915)</sup> FC-DenseNet (Jégou and colleagues, 2016) extends DenseNets to segmentation with transition-up modules of 3×3 transposed convolutions with stride 2 plus skip connections.<sup>[13](https://doi.org/10.48550/arxiv.1611.09326)</sup> IFCN-8s adds dense skip connections from all feature maps starting with pool3, versus only pool3 and pool4 in FCN-8s, at minor extra computation cost.<sup>[14](https://ar5iv.labs.arxiv.org/html/1611.08986)</sup>\n\n## Applications\n\nBeyond PASCAL VOC, the original FCN reported state-of-the-art segmentation of NYUDv2 and SIFT-Flow.<sup>[1](https://openaccess.thecvf.com/content_cvpr_2015/html/Long_Fully_Convolutional_Networks_2015_CVPR_paper.html)</sup> Fully convolutional inference had already been exploited for sliding-window detection by Sermanet and colleagues and semantic segmentation by Pinheiro and Collobert.<sup>[5](https://arxiv.org/abs/1411.4038)</sup> In medical imaging, the FCN lineage runs through U-Net and its derivatives<sup>[9](https://www.mdpi.com/2075-4418/12/11/2765)</sup>, and the Fully Convolutional Transformer (Tragakis and colleagues, 2022) extends the FCN encoder–decoder paradigm by replacing self-attention projections with depthwise convolutions, removing the need for positional encoding.<sup>[15](https://doi.org/10.48550/arxiv.2206.00566)</sup> FC-DenseNet improved the state of the art on the Camvid and Gatech urban scene understanding benchmarks.<sup>[13](https://doi.org/10.48550/arxiv.1611.09326)</sup>\n\n## Limitations and alternatives\n\nThe dominant failure mode is coarse boundaries. Subsampling reduces the output from the input size by a factor equal to the pixel stride of the output units' receptive fields, and the 32-pixel stride of FCN-32s limits the detail in the upsampled output.<sup>[4](https://arxiv.org/html/1605.06211v1)</sup><sup> • </sup><sup>[1](https://openaccess.thecvf.com/content_cvpr_2015/html/Long_Fully_Convolutional_Networks_2015_CVPR_paper.html)</sup> [Upsampling](https://www.edgepedia.org/upsampling) with transposed convolutions or unpooling loses information; skip connections from earlier, higher-resolution layers, deconvolutional networks, and combinations with CRFs are the standard remedies.<sup>[11](https://tjmachinelearning.com/lectures/1718/fcn/fcn.pdf)</sup><sup> • </sup><sup>[2](https://www.cs.ubc.ca/%7Eschmidtm/Courses/440-W21/L35.pdf)</sup> IFCN's authors add a domain gap: the pretrained CNN is trained on low-resolution 224×224 classification images while segmentation inputs are typically high resolution (for example 512×512), causing locally ambiguous predictions.<sup>[14](https://ar5iv.labs.arxiv.org/html/1611.08986)</sup>\n\nAgainst the sliding-window alternative, the gain is computational. Classifying each pixel from a neighborhood crop would require 40,000 forward passes for a 200×200 image.<sup>[2](https://www.cs.ubc.ca/%7Eschmidtm/Courses/440-W21/L35.pdf)</sup> Overall inference time fell 114× (convnet only) to 286× (overall) relative to R-CNN/SDS-style pipelines.<sup>[5](https://arxiv.org/abs/1411.4038)</sup>\n\nLater transformer-based methods compete on both axes. SegNeXt-S (Guo and colleagues, 2022) outperforms SegFormer-B2 on Cityscapes (81.3% vs 81.0% mIoU) using about 1/6 the compute (124.6G vs 717.1G).<sup>[16](https://doi.org/10.48550/arxiv.2209.08575)</sup> FCN-lineage systems remain active: IFCN-8s with VGG-16 beats FCN-8s by more than 7.5% mIOU on all tested benchmarks, reaching 74.6 mIOU without CRF and 75.3 with CRF on PASCAL VOC 2012<sup>[14](https://ar5iv.labs.arxiv.org/html/1611.08986)</sup>, and Panoptic FCN (Li and colleagues, 2020) applies fully convolutional networks to panoptic segmentation.<sup>[17](https://doi.org/10.48550/arxiv.2012.00720)</sup>\n\n## References\n\n1. [Fully Convolutional Networks for Semantic Segmentation (CVPR 2015 open access page)](https://openaccess.thecvf.com/content_cvpr_2015/html/Long_Fully_Convolutional_Networks_2015_CVPR_paper.html)\n2. [CPSC 440 lecture notes: Fully-Convolutional Networks](https://www.cs.ubc.ca/%7Eschmidtm/Courses/440-W21/L35.pdf)\n3. [Evan Shelhamer, Jonathan Long, Trevor Darrell (2016). Fully Convolutional Networks for Semantic Segmentation. IEEE Transactions on Pattern Analysis and Machine Intelligence.](https://doi.org/10.1109/tpami.2016.2572683)\n4. [Fully Convolutional Networks for Semantic Segmentation (PAMI 2016 journal edition, arXiv:1605.06211)](https://arxiv.org/html/1605.06211v1)\n5. [Fully Convolutional Networks for Semantic Segmentation (arXiv:1411.4038)](https://arxiv.org/abs/1411.4038)\n6. [Dive into Deep Learning, Fully Convolutional Networks](https://d2l.ai/chapter_computer-vision/fcn.html)\n7. [shelhamer/fcn.berkeleyvision.org, reference implementation (GitHub)](https://github.com/shelhamer/fcn.berkeleyvision.org/tree/master/)\n8. [Sermanet, Pierre and colleagues (2013). OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks. arXiv (Cornell University).](https://doi.org/10.48550/arxiv.1312.6229)\n9. [Fully Convolutional Network for the Semantic Segmentation of Medical Images: A Survey](https://www.mdpi.com/2075-4418/12/11/2765)\n10. [Ronneberger, Olaf, Fischer, Philipp, Brox, Thomas (2015). U-Net: Convolutional Networks for Biomedical Image Segmentation. arXiv (Cornell University).](https://doi.org/10.48550/arxiv.1505.04597)\n11. [Fully Convolutional Networks (Sardana, lecture notes)](https://tjmachinelearning.com/lectures/1718/fcn/fcn.pdf)\n12. [Chen, Liang-Chieh and colleagues (2016). DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs. arXiv (Cornell University).](https://doi.org/10.48550/arxiv.1606.00915)\n13. [Jégou, Simon and colleagues (2016). The One Hundred Layers Tiramisu: Fully Convolutional DenseNets for Semantic Segmentation. arXiv (Cornell University).](https://doi.org/10.48550/arxiv.1611.09326)\n14. [Improving Fully Convolution Network for Semantic Segmentation (IFCN)](https://ar5iv.labs.arxiv.org/html/1611.08986)\n15. [Tragakis, Athanasios and colleagues (2022). The Fully Convolutional Transformer for Medical Image Segmentation. arXiv (Cornell University).](https://doi.org/10.48550/arxiv.2206.00566)\n16. [Guo, Meng-Hao and colleagues (2022). SegNeXt: Rethinking Convolutional Attention Design for Semantic Segmentation. arXiv (Cornell University).](https://doi.org/10.48550/arxiv.2209.08575)\n17. [Li, Yanwei and colleagues (2020). Fully Convolutional Networks for Panoptic Segmentation. arXiv (Cornell University).](https://doi.org/10.48550/arxiv.2012.00720)\n\n---\n*Topic: Encyclopedia › Technology and the built world › Computing and digital systems › Artificial intelligence and data › Machine learning and neural computation › Neural networks and deep learning › Titles A to H*\n\n*Initially written Sep 29, 2026 · Edited: Oct 15, 2026*\n\n*Copyright 2026 EdgeChat AI, a subsidiary of Biostate AI.*\n\nLicense: Edgepedia Community License 1.0, https://www.edgepedia.org/edgepedia/license\n",
 "same_as": [],
 "url": "https://www.edgepedia.org/fully-convolutional-network",
 "markdown_url": "https://www.edgepedia.org/fully-convolutional-network.md",
 "license": {
  "name": "Edgepedia Community License 1.0",
  "url": "https://www.edgepedia.org/edgepedia/license",
  "summary": "Free with credit, commercial use included. AI training is open to everyone. For other uses, organizations over USD 100M in revenue or 100M monthly users license separately.",
  "spdx": "LicenseRef-Edgepedia-Community-1.0"
 },
 "credit": "\"Fully convolutional network\", Edgepedia (EdgeChat), https://www.edgepedia.org/fully-convolutional-network. Edgepedia Community License 1.0.",
 "credit_md": "\"[Fully convolutional network](https://www.edgepedia.org/fully-convolutional-network)\", Edgepedia (EdgeChat), [https://www.edgepedia.org/fully-convolutional-network](https://www.edgepedia.org/fully-convolutional-network). [Edgepedia Community License 1.0](https://www.edgepedia.org/edgepedia/license).",
 "credit_html": "\"<a href=\"https://www.edgepedia.org/fully-convolutional-network\">Fully convolutional network</a>\", Edgepedia (EdgeChat), <a href=\"https://www.edgepedia.org/fully-convolutional-network\">https://www.edgepedia.org/fully-convolutional-network</a>. <a href=\"https://www.edgepedia.org/edgepedia/license\">Edgepedia Community License 1.0</a>.",
 "speakable": "A fully convolutional network is a neural network architecture for image segmentation that replaces fully connected layers with convolutions, producing dense per-pixel predictions from inputs of any size."
}
