mirror of
https://github.com/labmlai/annotated_deep_learning_paper_implementations.git
synced 2025-08-14 01:13:00 +08:00
<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <meta name="description" content=""/> <meta name="twitter:card" content="summary"/> <meta name="twitter:image:src" content="https://avatars1.githubusercontent.com/u/64068543?s=400&v=4"/> <meta name="twitter:title" content="Graph Attention Networks v2 (GATv2)"/> <meta name="twitter:description" content=""/> <meta name="twitter:site" content="@labmlai"/> <meta name="twitter:creator" content="@labmlai"/> <meta property="og:url" content="https://nn.labml.ai/graphs/gatv2/readme.html"/> <meta property="og:title" content="Graph Attention Networks v2 (GATv2)"/> <meta property="og:image" content="https://avatars1.githubusercontent.com/u/64068543?s=400&v=4"/> <meta property="og:site_name" content="Graph Attention Networks v2 (GATv2)"/> <meta property="og:type" content="object"/> <meta property="og:title" content="Graph Attention Networks v2 (GATv2)"/> <meta property="og:description" content=""/> <title>Graph Attention Networks v2 (GATv2)</title> <link rel="shortcut icon" href="/icon.png"/> <link rel="stylesheet" href="../../pylit.css?v=1"> <link rel="canonical" href="https://nn.labml.ai/graphs/gatv2/readme.html"/> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.18/dist/katex.min.css" integrity="sha384-zTROYFVGOfTw7JV7KUu8udsvW2fx4lWOsCEDqhBreBwlHI4ioVRtmIvEThzJHGET" crossorigin="anonymous"> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-4V3HC8HBLH"></script> <script> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', 'G-4V3HC8HBLH'); </script> </head> <body> <div id='container'> <div id="background"></div> <div class='section'> <div class='docs'> <p> <a class="parent" href="/">home</a> <a class="parent" href="../index.html">graphs</a> <a class="parent" href="index.html">gatv2</a> </p> <p> <a href="https://github.com/labmlai/annotated_deep_learning_paper_implementations" target="_blank"> <img alt="Github" src="https://img.shields.io/github/stars/labmlai/annotated_deep_learning_paper_implementations?style=social" style="max-width:100%;"/></a> <a href="https://twitter.com/labmlai" rel="nofollow" target="_blank"> <img alt="Twitter" src="https://img.shields.io/twitter/follow/labmlai?style=social" style="max-width:100%;"/></a> </p> <p> <a href="https://github.com/labmlai/annotated_deep_learning_paper_implementations/tree/master/labml_nn/graphs/gatv2/readme.md" target="_blank"> View code on Github</a> </p> </div> </div> <div class='section' id='section-0'> <div class='docs'> <div class='section-link'> <a href='#section-0'>#</a> </div> <h1><a href="https://nn.labml.ai/graphs/gatv2/index.html">Graph Attention Networks v2 (GATv2)</a></h1> <p>This is a <a href="https://pytorch.org">PyTorch</a> implementation of the GATv2 operator from the paper <a href="https://arxiv.org/abs/2105.14491">How Attentive are Graph Attention Networks?</a>.</p> <p>GATv2s work on graph data. A graph consists of nodes and edges connecting nodes. For example, in Cora dataset the nodes are research papers and the edges are citations that connect the papers.</p> <p>The GATv2 operator fixes the static attention problem of the standard GAT: since the linear layers in the standard GAT are applied right after each other, the ranking of attended nodes is unconditioned on the query node. In contrast, in GATv2, every node can attend to any other node.</p> <p>Here is <a href="https://nn.labml.ai/graphs/gatv2/experiment.html">the training code</a> for training a two-layer GATv2 on Cora dataset. </p> </div> <div class='code'> </div> </div> <div class='footer'> <a href="https://labml.ai">labml.ai</a> </div> </div> <script src=../../interactive.js?v=1"></script> <script> function handleImages() { var images = document.querySelectorAll('p>img') for (var i = 0; i < images.length; ++i) { handleImage(images[i]) } } function handleImage(img) { img.parentElement.style.textAlign = 'center' var modal = document.createElement('div') modal.id = 'modal' var modalContent = document.createElement('div') modal.appendChild(modalContent) var modalImage = document.createElement('img') modalContent.appendChild(modalImage) var span = document.createElement('span') span.classList.add('close') span.textContent = 'x' modal.appendChild(span) img.onclick = function () { console.log('clicked') document.body.appendChild(modal) modalImage.src = img.src } span.onclick = function () { document.body.removeChild(modal) } } handleImages() </script> </body> </html>