{"id":15640268,"url":"https://github.com/rusty1s/embedded_gcnn","last_synced_at":"2025-04-30T07:48:44.764Z","repository":{"id":94688548,"uuid":"83558992","full_name":"rusty1s/embedded_gcnn","owner":"rusty1s","description":"Embedded Graph Convolutional Neural Networks (EGCNN) in TensorFlow","archived":false,"fork":false,"pushed_at":"2018-06-10T07:31:51.000Z","size":24991,"stargazers_count":78,"open_issues_count":5,"forks_count":13,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-11-29T18:11:49.098Z","etag":null,"topics":["cnn","gcnn","graph","neural-network","spatial","spectral","tensorflow"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rusty1s.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-01T13:45:14.000Z","updated_at":"2024-06-17T09:11:13.000Z","dependencies_parsed_at":"2023-03-08T07:45:42.025Z","dependency_job_id":null,"html_url":"https://github.com/rusty1s/embedded_gcnn","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rusty1s%2Fembedded_gcnn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rusty1s%2Fembedded_gcnn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rusty1s%2Fembedded_gcnn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rusty1s%2Fembedded_gcnn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rusty1s","download_url":"https://codeload.github.com/rusty1s/embedded_gcnn/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228348381,"owners_count":17905897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cnn","gcnn","graph","neural-network","spatial","spectral","tensorflow"],"created_at":"2024-10-03T11:33:27.471Z","updated_at":"2024-12-05T17:50:36.652Z","avatar_url":"https://github.com/rusty1s.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Embedded Graph Convolutional Neural Networks\n\n[![Build Status][build-image]][build-url]\n[![Code Coverage][coverage-image]][coverage-url]\n[![Requirements Status][requirements-image]][requirements-url]\n[![Code Climate][code-climate-image]][code-climate-url]\n[![Code Climate Issues][code-climate-issues-image]][code-climate-issues-url]\n\n[build-image]: https://travis-ci.org/rusty1s/embedded_gcnn.svg?branch=master\n[build-url]: https://travis-ci.org/rusty1s/embedded_gcnn\n[coverage-image]: https://codecov.io/gh/rusty1s/embedded_gcnn/branch/master/graph/badge.svg\n[coverage-url]: https://codecov.io/github/rusty1s/embedded_gcnn?branch=master\n[requirements-image]: https://requires.io/github/rusty1s/embedded_gcnn/requirements.svg?branch=master\n[requirements-url]: https://requires.io/github/rusty1s/embedded_gcnn/requirements/?branch=master\n[code-climate-image]: https://codeclimate.com/github/rusty1s/embedded_gcnn/badges/gpa.svg\n[code-climate-url]: https://codeclimate.com/github/rusty1s/embedded_gcnn\n[code-climate-issues-image]: https://codeclimate.com/github/rusty1s/embedded_gcnn/badges/issue_count.svg\n[code-climate-issues-url]: https://codeclimate.com/github/rusty1s/embedded_gcnn/issues\n\n![Neural Network Approach](https://user-images.githubusercontent.com/6945922/28239620-a72734d0-6970-11e7-9253-8a1e027efd78.png)\n\nThis is a TensorFlow implementation of my mastersthesis on [Graph-based Image\nClassification](https://github.com/rusty1s/deep-learning-on-graphs/tree/master/masterthesis)\n*(german)*.\n\n**Embedded graph convolutional neural networks (EGCNN)** aim to make significant improvements to learning on graphs where nodes are positioned on a twodimensional euclidean plane and thus possess an orientation (like up, down, right and left).\nAs proof, we implemented an image classification on embedded graphs by first segmenting the image into superpixels with the use of [SLIC](https://infoscience.epfl.ch/record/177415/files/Superpixel_PAMI2011-2.pdf) or [Quickshift](http://vision.cs.ucla.edu/papers/vedaldiS08quick.pdf), converting this representation into a graph and inputting these to the neural network.\n\n![SlIC and Quickshift Segmentation](https://user-images.githubusercontent.com/6945922/27761633-61569a56-5e60-11e7-96d6-5a0507d26cf8.jpg)\n\nGraphs are trained on three different datasets and are automatically downloaded by running the corresponding train scripts:\n\n* [MNIST](http://yann.lecun.com/exdb/mnist/) (run `python mnist_graph.py` and `python mnist_spatial.py`)\n* [Cifar-10](https://www.cs.toronto.edu/~kriz/cifar.html) (run `python cifar_graph.py` and `python cifar_conv2d.py`)\n* [PascalVOC](http://host.robots.ox.ac.uk/pascal/VOC/) (run `python pascal_graph.py` and `python pascal_conv2d.py`)\n\nThis repository also includes layer implementations of alternative approaches such as [SGCNN](https://arxiv.org/abs/1312.6203) and [GCN](https://arxiv.org/abs/1609.02907) for graphs and the Fire module of [SqueezeNet](https://arxiv.org/abs/1602.07360) for images to validate the results.\n\n## Results\n\n| Dataset    | SLIC   | Quickshift |\n| ---------- | ------:| ----------:|\n| MNIST      | 97.405 | 98.025     |\n| Cifar-10   | 74.218 | 75.230     |\n| Pascal VOC | 54.473 | 54.516     |\n\n## Requirements\n\nTo install the required python packages, run:\n\n```bash\npip install -r requirements.txt\n```\n\n## Running tests\n\nInstall the test requirements\n\n```bash\npip install -r requirements_test.txt\n```\n\nand run the test suite:\n\n```bash\nnosetests --nologcapture\n```\n\n## Cite\n\nPlease cite my master thesis if you use this code in your own work:\n\n```\n@mastersthesis{Fey2017,\n  title={{Convolutional Neural Networks auf Graphrepr{\\\"a}sentationen von Bildern}},\n  author={Matthias Fey},\n  school={Technische Universit{\\\"a}t Dortmund},\n  year={2017},\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frusty1s%2Fembedded_gcnn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frusty1s%2Fembedded_gcnn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frusty1s%2Fembedded_gcnn/lists"}