It seems like all three options for padding_mode parameter: 'zeros' ,  'reflect' ,  'replicate' output same 0 paddings. Only 'circular' outputs the padding its name suggests. I have used the following code to test this.
import torch.nn as nn
from PIL import Image
import matplotlib.pyplot as plt
import torchvision.utils as utils
import numpy as np

def imshow(images):
    img = utils.make_grid(images)
    npimg = img.numpy()
    plt.imshow(np.transpose(npimg, (1, 2, 0)))
    plt.show()

for images, labels, names in loader_eval:
    conv1 = nn.Conv2d(1, 1, kernel_size=1, stride=1, padding=10, padding_mode='replicate')
    conv1.state_dict()['weight'].copy_(torch.FloatTensor([[[[1.0]]]]))
    conv1.state_dict()['bias'].copy_(torch.FloatTensor([0.0]))
    img = conv1(images)
    imshow(img.detach())
    break

Am I doing something wrong or is there a bug in the implementation?
Thanks.