Network structure of theano's network in pytorch

hello,
Could you please help me to write below Convolution neural network in pytorch? @ptrblck @thomasjo

l_in = lasagne.layers.InputLayer(
        shape=(None, 1, input_height, input_width),
    )

    l_hid1 = lasagne.layers.Conv2DLayer(
        l_in,
        num_filters=8,
        filter_size=4,
        stride=(2, 2),
        pad=2,
        # untie_biases=False,
        W=lasagne.init.GlorotUniform(.01),
        b=lasagne.init.Constant(0.),
        nonlinearity=lasagne.nonlinearities.rectify,
        convolution=theano.tensor.nnet.conv2d
    )

    l_hid2 = lasagne.layers.Conv2DLayer(
        l_hid1,
        num_filters=16,
        filter_size=2,
        stride=(1, 1),
        pad=1,
        # untie_biases=False,
        W=lasagne.init.GlorotUniform(.01),
        b=lasagne.init.Constant(0.),
        nonlinearity=lasagne.nonlinearities.rectify,
        convolution=theano.tensor.nnet.conv2d
    )

    l_hid3 = lasagne.layers.DenseLayer(
        l_hid2,
        num_units=20,
        # nonlinearity=lasagne.nonlinearities.tanh,
        nonlinearity=lasagne.nonlinearities.rectify,
        # W=lasagne.init.Normal(.0201),
        W=lasagne.init.Normal(.01), # std = 0.01
        b=lasagne.init.Constant(0)
    )

    l_out = lasagne.layers.DenseLayer(
        l_hid3,
        num_units=output_length,
        nonlinearity=lasagne.nonlinearities.softmax,
        # W=lasagne.init.Normal(.0001),
        W=lasagne.init.Normal(.01),
        b=lasagne.init.Constant(0)
    )

the special part which makes me confused is in l_hid1 and l_hid2. (filter_size, what is its equivalent in pythorch?kernel size! )

Yes, filter_size corresponds to the kernel_size.
From the lasagne docs:

filter_size :int or iterable of int
An integer or a 1-element tuple specifying the size of the filters.