Metadata-Version: 2.1
Name: tensorflow-gnn
Version: 0.2.0.dev1
Summary: A library for building scalable graph neural networks in TensorFlow.
Home-page: UNKNOWN
Author: Google LLC
Author-email: tensorflow-gnn@googlegroups.com
License: Apache 2.0
Download-URL: https://github.com/tensorflow/gnn.git
Keywords: tensorflow gnn graph
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.7,<4
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: AUTHORS

# TensorFlow GNN

**This is an early (alpha) release to get community feedback.** It's under
active development and **we may break API compatibility in the future**.


TensorFlow GNN is a library to build Graph Neural Networks on the TensorFlow
platform. It contains the following components:

* A high-level Keras-style API to create GNN models that can easily be composed
  with other types of models. GNNs are often used in combination with ranking,
  deep-retrieval (dual-encoders) or mixed with other types of models
  (image, text, etc.)

* GNN API for heterogeneous graphs. Many of the graph problems we approach at
  Google and in the real world contain different types of nodes and edges.
  Hence the emphasis in heterogeneous models.

* A well-defined schema to declare the topology of a graph, and tools to
  validate it. It describes the shape of its training data and serves to guide
  other tools.

* A GraphTensor composite tensor type which holds graph data, can be batched,
  and has efficient graph manipulation functionality available.

* A library of operations on the GraphTensor structure:

  * Various efficient broadcast and pooling operations on nodes and edges, and
    related tools.

  * A library of standard baked convolutions, that can be easily extended by
    ML engineers/researchers.

  * A high-level API for product engineers to quickly build GNN models without
    necessarily worrying about its details.

* A set of tools used to convert graph datasets and sample from large
  graphs.

* An encoding of graph-shaped training data on file, as well as a library used
  to parse this data into a data structure your model can extract the various
  features.

This library is an OSS port of a Google internal library used in a broad variety
of contexts, on homogeneous and heterogeneous graphs, and in conjunction with
other scalable graph mining tools.

For more details, please see our [documentation](g3doc/guide/overview.md).


## Installation Instructions

##### Installation from source.

This is currently the only way to install the preview release of ```tensorflow_gnn```.
A virtual environment is highly recommended.

1.  **Clone tensorflow_gnn**

    > `$> git clone https://github.com/tensorflow/gnn.git tensorflow_gnn`

2.  **Install TensorFlow**

    TF-GNN currently uses
    [tf.ExtensionTypes](https://www.tensorflow.org/api_docs/python/tf/experimental/ExtensionType),
    which is a feature of TensorFlow 2.7. As such, you will need to install
    TensorFlow build, following the instructions here:
    https://www.tensorflow.org/install/pip.

    > `$> pip install tensorflow`

3.  **Install Bazel**

    Bazel is required to build the source of this package. Follow the
    instructions here to install Bazel for your OS:
    https://docs.bazel.build/versions/main/install.html

4.  **Install GraphViz**

    This package uses GraphViz for visualization tools. Installation
    instructions vary depending on your operating system. E.g. for Ubuntu:

    > `$> sudo apt-get install graphviz graphviz-dev`

5.  **Install tensorflow_gnn**

    > `$> cd tensorflow_gnn && python3 -m pip install .`


