Thanks for your reply.
I don’t see any padding operation in the paper and you are right there is no pooling layers in the Net because of the feature map is smaller than the kernal size after the second pooling layer.
if there no pooling and padding. it seems looks like this:
"Conv1 -> RELU -> Conv2 -> RELU -> Conv3 -> RELu -> FC1 -> RELU -> FC2 -> SOFTMAX"
class BaseLineNet(nn.Module):
    def __init__(self):
        super(BaseLineNet, self).__init__()
        self.conv1 = nn.Conv2d(in_channels=1, out_channels=256, kernel_size=5, stride=1)        # in [1,28,28]   -> out [256,24,24]
        self.conv2 = nn.Conv2d(in_channels=256, out_channels=256, kernel_size=5, stride=1)      # in [256,24,24] -> out [256,20,20]
        self.conv3 = nn.Conv2d(in_channels=256, out_channels=128, kernel_size=5, stride=1)      # in [256,20,20] -> out [128,16,16]
        self.fc1 = nn.Linear(128*16*16, 328)
        self.fc2 = nn.Linear(328, 192)
        self.fc3 = nn.Linear(192, 10)

    def forward(self, x):
        x = F.relu(self.conv1(x), inplace=True)
        x = F.relu(self.conv2(x), inplace=True)
        x = F.relu(self.conv3(x), inplace=True)
        x = x.view(-1, 128*16*16)
        x = F.relu(self.fc1(x))
        x = F.relu(self.fc2(x))
        x = F.dropout(x, training=self.training)
        x = self.fc3(x)
        return (F.log_softmax(x, dim=1))

and after i have finished this work,another question raised.  : (
The author said their baseline CNN has 35.4M parameters in all, but the code above only have ~13M parameters using print("# parameters:", sum(param.numel() for param in model.parameters()))
How can a 3 conv net have so many parameters? !
And i am not quite sure the code is right or not, do you have any suggestions?
Hope I can get the resuls as the author has done.
Thanks for your help, and best wishes.