My question refers to the official implementation of CF-GNNExplainer on Github: https://github.com/a-lucic/cf-gnnexplainer
When the perturbed model is built, the first 2 ConvLayers are the newly created perturbed layers while the 3rd layer is a normal ConvLayer without perturbation.
Why is this layer not perturbed as well?
see code here: https://github.com/a-lucic/cf-gnnexplainer/blob/main/src/cf_explanation/gcn_perturb.py
Here is where the layers are defined:
self.gc1 = GraphConvolutionPerturb(nfeat, nhid)
self.gc2 = GraphConvolutionPerturb(nhid, nhid)
self.gc3 = GraphConvolution(nhid, nout)
self.lin = nn.Linear(nhid + nhid + nout, nclass)
self.dropout = dropout
I want to use different model architectures and wonder how I have to build the corresponding perturbed version.