{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/multi-graph-transformer-for-free-hand-sketch","title":"Multi-Graph Transformer for Free-Hand Sketch Recognition","arxiv_id":"1912.11258","date":"2019-12-24","proceeding":null,"authors":["Peng Xu","Chaitanya K. Joshi","Xavier Bresson"],"abstract":"Learning meaningful representations of free-hand sketches remains a challenging task given the signal sparsity and the high-level abstraction of sketches. Existing techniques have focused on exploiting either the static nature of sketches with Convolutional Neural Networks (CNNs) or the temporal sequential property with Recurrent Neural Networks (RNNs). In this work, we propose a new representation of sketches as multiple sparsely connected graphs. We design a novel Graph Neural Network (GNN), the Multi-Graph Transformer (MGT), for learning representations of sketches from multiple graphs which simultaneously capture global and local geometric stroke structures, as well as temporal information. We report extensive numerical experiments on a sketch recognition task to demonstrate the performance of the proposed approach. Particularly, MGT applied on 414k sketches from Google QuickDraw: (i) achieves small recognition gap to the CNN-based performance upper bound (72.80% vs. 74.22%), and (ii) outperforms all RNN-based models by a significant margin. To the best of our knowledge, this is the first work proposing to represent sketches as graphs and apply GNNs for sketch recognition. Code and trained models are available at https://github.com/PengBoXiangShang/multigraph_transformer.","url_abs":"https://arxiv.org/abs/1912.11258v3","url_pdf":"https://arxiv.org/pdf/1912.11258v3.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"multi-graph-transformer-for-free-hand-sketch","repo_url":"https://github.com/PengBoXiangShang/multigraph_transformer","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"graph-neural-network","task_name":"Graph Neural Network"},{"task_slug":"sketch-recognition","task_name":"Sketch Recognition"}],"methods":[{"method_slug":"absolute-position-encodings","method_name":"Absolute Position Encodings"},{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"graph-neural-network","method_name":"Graph Neural Network"},{"method_slug":"label-smoothing","method_name":"Label Smoothing"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"position-wise-feed-forward-layer","method_name":"Position-Wise Feed-Forward Layer"},{"method_slug":"relu","method_name":"ReLU"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"transformer","method_name":"Transformer"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1912.11258","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1912.11258"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/PengBoXiangShang/multigraph_transformer","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":4},"by_repo_kind":{"official":{"samples":4,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"e67387d5c50520a8","entry":"make_model","repo":"PengBoXiangShang/multigraph_transformer","repo_kind":"official","path":"network/gra_transf_inpt5_new_dropout_2layerMLP.py","file_url":"https://github.com/PengBoXiangShang/multigraph_transformer/blob/HEAD/network/gra_transf_inpt5_new_dropout_2layerMLP.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e67387d5c50520a8"}},{"code_sha256_prefix":"73e8149aacbfeca1","entry":"make_model","repo":"PengBoXiangShang/multigraph_transformer","repo_kind":"official","path":"network/gra_transf_inpt5_new_dropout_2layerMLP_2_adj_mtx.py","file_url":"https://github.com/PengBoXiangShang/multigraph_transformer/blob/HEAD/network/gra_transf_inpt5_new_dropout_2layerMLP_2_adj_mtx.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"73e8149aacbfeca1"}},{"code_sha256_prefix":"c5fba9cb917b17cd","entry":"make_model","repo":"PengBoXiangShang/multigraph_transformer","repo_kind":"official","path":"network/gra_transf_inpt5_new_dropout_2layerMLP_3_adj_mtx.py","file_url":"https://github.com/PengBoXiangShang/multigraph_transformer/blob/HEAD/network/gra_transf_inpt5_new_dropout_2layerMLP_3_adj_mtx.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c5fba9cb917b17cd"}},{"code_sha256_prefix":"6356a6171d208cfd","entry":"make_model","repo":"PengBoXiangShang/multigraph_transformer","repo_kind":"official","path":"network/graph_attention_net.py","file_url":"https://github.com/PengBoXiangShang/multigraph_transformer/blob/HEAD/network/graph_attention_net.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6356a6171d208cfd"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}