Submodule containing implementations for extended diffstruc array operations
Gradient of duvenaud_propagate with respect to vertex_features.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(array_type), | intent(inout) | :: | this |
Forward result node containing saved operands |
||
| type(array_type), | intent(in) | :: | upstream_grad |
Upstream gradient tensor |
Gradient tensor for left operand
Gradient of duvenaud_propagate with respect to edge_features.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(array_type), | intent(inout) | :: | this |
Forward result node containing saved operands |
||
| type(array_type), | intent(in) | :: | upstream_grad |
Upstream gradient tensor |
Gradient tensor for right operand
Gradient of duvenaud_update with respect to input features.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(array_type), | intent(inout) | :: | this |
Forward result node containing saved operands |
||
| type(array_type), | intent(in) | :: | upstream_grad |
Upstream gradient tensor |
Gradient tensor for right operand (input features)
Gradient of duvenaud_update with respect to packed weights.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(array_type), | intent(inout) | :: | this |
Forward result node containing saved operands |
||
| type(array_type), | intent(in) | :: | upstream_grad |
Upstream gradient tensor |
Gradient tensor for left operand (weights)
In-place value gradient for duvenaud_propagate left operand.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(array_type), | intent(in) | :: | this |
Forward result node containing saved operands |
||
| real(kind=real32), | intent(in), | dimension(:,:) | :: | upstream_grad |
Upstream gradient values |
|
| real(kind=real32), | intent(out), | dimension(:,:) | :: | output |
Output gradient values for left operand |
In-place value gradient for duvenaud_propagate right operand.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(array_type), | intent(in) | :: | this |
Forward result node containing saved operands |
||
| real(kind=real32), | intent(in), | dimension(:,:) | :: | upstream_grad |
Upstream gradient values |
|
| real(kind=real32), | intent(out), | dimension(:,:) | :: | output |
Output gradient values for right operand |
In-place value gradient for duvenaud_update input features.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(array_type), | intent(in) | :: | this |
Forward result node containing saved operands |
||
| real(kind=real32), | intent(in), | dimension(:,:) | :: | upstream_grad |
Upstream gradient values |
|
| real(kind=real32), | intent(out), | dimension(:,:) | :: | output |
Output gradient values for input features |
In-place value gradient for duvenaud_update packed weights.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(array_type), | intent(in) | :: | this |
Forward result node containing saved operands |
||
| real(kind=real32), | intent(in), | dimension(:,:) | :: | upstream_grad |
Upstream gradient values |
|
| real(kind=real32), | intent(out), | dimension(:,:) | :: | output |
Output gradient values for packed weights |
Propagate values from one autodiff array to another
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(array_type), | intent(in), | target | :: | vertex_features |
Vertex and edge feature tensors |
|
| class(array_type), | intent(in), | target | :: | edge_features |
Vertex and edge feature tensors |
|
| integer, | intent(in), | dimension(:) | :: | adj_ia |
CSR row pointers |
|
| integer, | intent(in), | dimension(:,:) | :: | adj_ja |
CSR neighbour and edge lookup indices |
Propagated concatenated feature tensor
Update the message passing layer
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(array_type), | intent(in), | target | :: | a |
Aggregated neighbour features |
|
| class(array_type), | intent(in), | target | :: | weight |
Packed degree-conditioned weight tensor |
|
| integer, | intent(in), | dimension(:) | :: | adj_ia |
CSR row pointers |
|
| integer, | intent(in) | :: | min_degree |
Minimum and maximum degree buckets |
||
| integer, | intent(in) | :: | max_degree |
Minimum and maximum degree buckets |
Degree-conditioned updated feature tensor