Yejin0111/ADD-GCN

关于静态图的构建问题?

Opened this issue · 10 comments

您好,阅读了论文及代码,由于静态图的构建有所疑惑。
image
image
image

  • 根据论文中所述,静态图是对所属输入数据共享的,但是从代码中可见,静态图的邻接矩阵也是通过网络学习的,那么,它其实是变化的的,所以我不太理解这里是不是论文和代码没发匹配。

@zhgqcn 静态图的参数是通过网络学习获得的,在训练完毕之后,静态图的参数就 fix 了。即在测试阶段:静态图是对所属输入数据共享的

@zhgqcn 静态图的参数是通过网络学习获得的,在训练完毕之后,静态图的参数就 fix 了。即在测试阶段:静态图是对所属输入数据共享的

明白了。这种静态图真的能够学习到论文中提到的静态图标签之间的全局关系吗?
您有没有尝试过ML-GCN利用training set利用标签预先定义Graph的邻接矩阵
image

该工作就是受 ML-GCN 的启发,在该工作早期有对比过:直接利用 ML-GCN 提供的邻接矩阵不如学习获得的结果。

该工作就是受 ML-GCN 的启发,在该工作早期有对比过:直接利用 ML-GCN 提供的邻接矩阵不如学习获得的结果。

感谢您的回复。我还有个问题,基于GCN的计算中,邻接矩阵的值对结果的影响大吗?很多工作的邻接矩阵是[0,1]二值化的,而您用学习的方法得到的邻接矩阵是0-1之间的离散值矩阵,这种对于GCN的卷积计算的结果应该会特别大吗?

image

image

该工作就是受 ML-GCN 的启发,在该工作早期有对比过:直接利用 ML-GCN 提供的邻接矩阵不如学习获得的结果。

image

还有关于消融实验,您用其他层替代D-GCN模块,我在自己的工作中也想这样做。但是考虑到,替代层的参数量比Graph模块参数量会少一些,会不会是参数量导致的Graph中的性能提升呢而非Graph本身带来的?

该工作就是受 ML-GCN 的启发,在该工作早期有对比过:直接利用 ML-GCN 提供的邻接矩阵不如学习获得的结果。

image

还有关于消融实验,您用其他层替代D-GCN模块,我在自己的工作中也想这样做。但是考虑到,替代层的参数量比Graph模块参数量会少一些,会不会是参数量导致的Graph中的性能提升呢而非Graph本身带来的?

我认为不是。如果你想验证的话,我建议你可以对替代层增加几个 Conv Layer 或者其他操作对齐参数量进行一下对比。

@zhgqcn 静态图的参数是通过网络学习获得的,在训练完毕之后,静态图的参数就 fix 了。即在测试阶段:静态图是对所属输入数据共享的

在您的代码中没用看到Fix操作,好像保存和加载的都是整个模型的参数?可以提供完整的代码参考吗,非常感谢

@zhgqcn 静态图的参数是通过网络学习获得的,在训练完毕之后,静态图的参数就 fix 了。即在测试阶段:静态图是对所属输入数据共享的

在您的代码中没用看到Fix操作,好像保存和加载的都是整个模型的参数?可以提供完整的代码参考吗,非常感谢

这里 fix 的意思就是模型参数啊,模型参数在训练完成之后就固定了不会改变了啊 :)

@zhgqcn 静态图的参数是通过网络学习获得的,在训练完毕之后,静态图的参数就 fix 了。即在测试阶段:静态图是对所属输入数据共享的

在您的代码中没用看到Fix操作,好像保存和加载的都是整个模型的参数?可以提供完整的代码参考吗,非常感谢

这里 fix 的意思就是模型参数啊,模型参数在训练完成之后就固定了不会改变了啊 :)

image

  • 感觉这个静态图的有点抽象,具体实现貌似就是卷积,然后转置就是沿着不同的维度进行

@zhgqcn 静态图的参数是通过网络学习获得的,在训练完毕之后,静态图的参数就 fix 了。即在测试阶段:静态图是对所属输入数据共享的

在您的代码中没用看到Fix操作,好像保存和加载的都是整个模型的参数?可以提供完整的代码参考吗,非常感谢

这里 fix 的意思就是模型参数啊,模型参数在训练完成之后就固定了不会改变了啊 :)

image

* 感觉这个静态图的有点抽象,具体实现貌似就是卷积,然后转置就是沿着不同的维度进行

静态图的权重就在这个卷积当中
print(self.static_adj.data)
nn.Conv1d(num_nodes, num_nodes, 1, bias=False),