reysam93 / Graph_Deep_Decoder

6 stars 1 forks source link

The nn.Conv1d operation in GraphDecoder and GraphDeepDecoder #1

Closed wangfuli closed 1 year ago

wangfuli commented 1 year ago

Hello,

Thank you for making this exciting work public! When going through the implementation for the Graph Convolution Generator (GCG) method, specifically in 'graph_deep_decoder/architecture.py', I found that both classes: GraphDecoder and GraphDeepDecoder consist of the nn.Conv1d operation. If I understand correctly, by setting the kernel size as 1, the Conv1d operation is equivalent to the matrix dot product. However, the GCG method described in the paper is a matrix product between the filter $H$, graph signal $Y$, and learnable weight $\Theta$. Could you help me understand this implementation?

Thank you so much!

reysam93 commented 1 year ago

I am glad that you liked this work. Answering your question, setting the kernel size as 1 does not result in the matrix dot product, it merely provides a linear combination of the input matrix, i.e., it results in matrix multiplication. This is explained in more detail in some papers, see for example the one below.

Heckel, R., & Hand, P. (2018). Deep decoder: Concise image representations from untrained non-convolutional networks. arXiv preprint arXiv:1810.03982.

wangfuli commented 1 year ago

Thank you so much for the clarification and the material, Samuel! I will look into it.