I would like to perform 2d convolution on the same data using the same kernel but with different dilation rates.  I do I do this kernel sharing?
Would it be best to initialize a kernel and then use that same kernel between multiple conv2d layers using the functional version as in the following?

  
    
    
    How to share a convolution kernel's transpose to another kernel? 
  
  
    Thank you man. The reason I do 
self.conv2.weight[0,0] = self.conv1.weight[0,0].t()

is that the convolution kernel is a 4d tensor, i.e.: 
[torch.FloatTensor of size output_chanel x input_channel x kernel_height x kernel_width]

So I cannot just use conv2.weight = conv1.weight.t() to transpose all of the kernels. 
But even I replace conv with linear layer, like that: 
import torch
import torch.nn as nn


class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        se…
  


Or should I make multiple layers with different kernels and then set the kernels equal to each other?