{"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/graph-neural-networks-in-tensorflow-and-keras","title":"Graph Neural Networks in TensorFlow and Keras with Spektral","arxiv_id":"2006.12138","date":"2020-06-22","proceeding":null,"authors":["Daniele Grattarola","Cesare Alippi"],"abstract":"In this paper we present Spektral, an open-source Python library for building graph neural networks with TensorFlow and the Keras application programming interface. Spektral implements a large set of methods for deep learning on graphs, including message-passing and pooling operators, as well as utilities for processing graphs and loading popular benchmark datasets. The purpose of this library is to provide the essential building blocks for creating graph neural networks, focusing on the guiding principles of user-friendliness and quick prototyping on which Keras is based. Spektral is, therefore, suitable for absolute beginners and expert deep learning practitioners alike. In this work, we present an overview of Spektral's features and report the performance of the methods implemented by the library in scenarios of node classification, graph classification, and graph regression.","url_abs":"https://arxiv.org/abs/2006.12138v1","url_pdf":"https://arxiv.org/pdf/2006.12138v1.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":"graph-neural-networks-in-tensorflow-and-keras","repo_url":"https://github.com/danielegrattarola/spektral","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"deep-learning","task_name":"Deep Learning"},{"task_slug":"classification","task_name":"General Classification"},{"task_slug":"graph-classification","task_name":"Graph Classification"},{"task_slug":"graph-regression","task_name":"Graph Regression"},{"task_slug":"node-classification","task_name":"Node Classification"},{"task_slug":"regression-1","task_name":"regression"}],"methods":[{"method_slug":"spektral","method_name":"Spektral"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2006.12138","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2006.12138"}},"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/danielegrattarola/spektral","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":"b92000343f3594e7","entry":"binary_adj_converter","repo":"danielegrattarola/spektral","repo_kind":"official","path":"spektral/models/gnn_explainer.py","file_url":"https://github.com/danielegrattarola/spektral/blob/HEAD/spektral/models/gnn_explainer.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":"b92000343f3594e7"}},{"code_sha256_prefix":"f5b71ebd68217e73","entry":"get_act","repo":"danielegrattarola/spektral","repo_kind":"official","path":"spektral/models/general_gnn.py","file_url":"https://github.com/danielegrattarola/spektral/blob/HEAD/spektral/models/general_gnn.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":"f5b71ebd68217e73"}},{"code_sha256_prefix":"5dd02dc57931ba2f","entry":"preprocess_data","repo":"danielegrattarola/spektral","repo_kind":"official","path":"spektral/datasets/graphsage.py","file_url":"https://github.com/danielegrattarola/spektral/blob/HEAD/spektral/datasets/graphsage.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":"5dd02dc57931ba2f"}},{"code_sha256_prefix":"3d0bc5cda38ae210","entry":"sp_tensor_to_sp_matrix","repo":"danielegrattarola/spektral","repo_kind":"official","path":"spektral/models/gnn_explainer.py","file_url":"https://github.com/danielegrattarola/spektral/blob/HEAD/spektral/models/gnn_explainer.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":"3d0bc5cda38ae210"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}