tfg.nn.layer.graph_convolution.feature_steered_convolution_layer
Wraps the function feature_steered_convolution
as a TensorFlow layer.
tfg.nn.layer.graph_convolution.feature_steered_convolution_layer(
data,
neighbors,
sizes,
translation_invariant=True,
num_weight_matrices=8,
num_output_channels=None,
initializer=tf.keras.initializers.TruncatedNormal(stddev=0.1),
name='graph_convolution_feature_steered_convolution',
var_name=None
)
The shorthands used below are
V
: The number of vertices.
C
: The number of channels in the input data.
Note |
In the following, A1 to An are optional batch dimensions.
|
Args |
data
|
A float tensor with shape [A1, ..., An, V, C] .
|
neighbors
|
A SparseTensor with the same type as data and with shape
[A1, ..., An, V, V] representing vertex neighborhoods. The neighborhood
of a vertex defines the support region for convolution. For a mesh, a
common choice for the neighborhood of vertex i would be the vertices in
the K-ring of i (including i itself). Each vertex must have at least
one neighbor. For a faithful implementation of the FeaStNet paper,
neighbors should be a row-normalized weight matrix corresponding to the
graph adjacency matrix with self-edges:
neighbors[A1, ..., An, i, j] > 0 if vertex i and j are neighbors,
neighbors[A1, ..., An, i, i] > 0 for all i , and
sum(neighbors, axis=-1)[A1, ..., An, i] == 1.0 for all i .
These requirements are relaxed in this implementation.
|
sizes
|
An int tensor of shape [A1, ..., An] indicating the true input
sizes in case of padding (sizes=None indicates no padding).
sizes[A1, ..., An] <= V . If data and neighbors are 2-D, sizes will
be ignored. As an example, consider an input consisting of three graphs
G0 , G1 , and G2 with V0 , V1 and V2 vertices respectively. The
padded input would have the following shapes: data.shape = [3, V, C] ,
and neighbors.shape = [3, V, V] , where V = max([V0, V1, V2]) . The true
sizes of each graph will be specified by sizes=[V0, V1, V2] .
data[i, :Vi, :] and neighbors[i, :Vi, :Vi] will be the vertex and
neighborhood data of graph Gi . The SparseTensor neighbors should
have no nonzero entries in the padded regions.
|
translation_invariant
|
A bool . If True the assignment of features to
weight matrices will be invariant to translation.
|
num_weight_matrices
|
An int specifying the number of weight matrices used
in the convolution.
|
num_output_channels
|
An optional int specifying the number of channels in
the output. If None then num_output_channels = C .
|
initializer
|
An initializer for the trainable variables.
|
name
|
A (name_scope) name for this op. Passed through to
feature_steered_convolution().
|
var_name
|
A (var_scope) name for the variables. Defaults to
graph_convolution_feature_steered_convolution_weights .
|
Returns |
Tensor with shape [A1, ..., An, V, num_output_channels] .
|
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2022-10-28 UTC.
[null,null,["Last updated 2022-10-28 UTC."],[],[]]