Tensorflow .slim library implements vgg, but replaces the fully connected layers with convolutional ones. The code is at:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/slim/python/slim/nets/vgg.py
So for example, fc8 layer is implemented as:
net = layers.conv2d(
net,
num_classes, [1, 1],
activation_fn=None,
normalizer_fn=None,
scope='fc8')
which looks like a very different operation, with much fewer weights. What is the reason for this?