Executing your code I realized that in the way you are defining the hypergraphs, the convolutional layers' weights are not being added to the TensorFlow graph. That means that (if you use the code as is) you are not updating the convolutional weights in the hypergraph layer.
def call (self, x) :
# New keras layers defined during the call are created on every different call
# therefore are not included in the computational graph
phi = tf.keras.layers.Conv2D(self.filters, ....)(x)
...
Actually, if you list all the weights contained in the checkpoints that you provide you can see that there is no weight that corresponds with the hypergraph convolutions. I don't know if this is a flaw or a desired behavior. If it is a flaw, perhaps you can even improve your results by fixing it.
Hi,
Thanks for publishing this amazing work!
Executing your code I realized that in the way you are defining the hypergraphs, the convolutional layers' weights are not being added to the TensorFlow graph. That means that (if you use the code as is) you are not updating the convolutional weights in the hypergraph layer.
Actually, if you list all the weights contained in the checkpoints that you provide you can see that there is no weight that corresponds with the hypergraph convolutions. I don't know if this is a flaw or a desired behavior. If it is a flaw, perhaps you can even improve your results by fixing it.
Thanks