-
Notifications
You must be signed in to change notification settings - Fork 317
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The use of func (model.update_attentive_A) maybe wrong in your code. #30
Comments
I am also interested to that question. Have you tried to randomly assign self.A_in and then try to call _create_xxx_embed() again to generate ua_embeddings, ea_embeddings? |
Sorry for the late reply after the busy weeks.
Hope this is helpful for you @chengaojie0011 @johnnyjana730 . |
Many thanks for your kind reply. The value of self.A_in has updated in class KGAT(object), but it doesn't update in the model because Tensorflow builds a static graph before a model can run. |
I have tested three variants, setting self.A_in's values as all zeros, all ones, and random values. The training performance is shown as follows: Some observations:
Hope this is helpful. Thanks for your insightful comments. |
I think @chengaojie0011 is right. Because knowledge_graph_attention_network/Model/KGAT.py Lines 465 to 466 in c03737b
if you set this exactly |
Thank you for offering the code of KGAT paper, and it helps me a lot.
In running code, I found that the function (model.update_attentive_A) use self.A_in to update the matrix A. But as far as I know, TensorFlow cannot change the value of the variable in the static graph in this way. I found experimentally that whatever self.A_in is assigned, it doesn't change the result of the model. If so, KGAT does not use dynamic weights to implement GAT. Look forward to your reply.
The text was updated successfully, but these errors were encountered: