引言
尽管我已经使用 Numpy 和 Pytorch 好长一段时间了,但我一直不知道他们是如何实现底层的张量(tensor),而且这么高效。最近在看 Deep Learning Systems 这门课,终于有机会尝试自己实现张量,实现一遍之后对张量的理解更深刻了🧐
尽管我已经使用 Numpy 和 Pytorch 好长一段时间了,但我一直不知道他们是如何实现底层的张量(tensor),而且这么高效。最近在看 Deep Learning Systems 这门课,终于有机会尝试自己实现张量,实现一遍之后对张量的理解更深刻了🧐
Justin Gilmer 提出了 MPNN(Message Passing Neural Network)框架1 ,用于描述被用来做图上的监督学习的图神经网络模型。我发现这是一个很好用的框架,可以很好理解不同的 GNN 模型是如何工作的,方便快速弄清楚不同的 GNN 模型之间的差别。我们考虑图 $G$ 上的一个节点 $v$,它的向量表示 $h_v$ 的更新方式如下: $$m_v^{t+1}=\sum_{u\in \mathcal{N}(v)}M_t(h_v^t,h_u^t,e_{vu})$$ $$h_v^{t+1}=U_t(h_v^t,m_v^{t+1})$$