Conversation
Codecov Report
@@ Coverage Diff @@
## master #158 +/- ##
==========================================
- Coverage 85.52% 85.14% -0.39%
==========================================
Files 15 14 -1
Lines 1285 1272 -13
==========================================
- Hits 1099 1083 -16
- Misses 186 189 +3
Continue to review full report at Codecov.
|
|
|
||
| for iter in 1:length(edge_weight) | ||
| if l.norm_both | ||
| push!(norm_val, edge_weight[iter] / (sqrt(dg_out[in[iter]] * dg_in[out[iter]]) + l.eps)) |
There was a problem hiding this comment.
these mutating operations are not AD friendly. I didn't think about it carefully but you should probably use apply_edges here
|
|
||
| for iter in 1:length(edge_weight) | ||
| if l.norm_both | ||
| push!(norm_val, edge_weight[iter] / (sqrt(dg_out[in[iter]] * dg_in[out[iter]]) + l.eps)) |
There was a problem hiding this comment.
these mutating operations are not AD friendly. I didn't think about it carefully but you should probably use apply_edges here
There was a problem hiding this comment.
I tried doing this using aggregate_neighbours, but ran into the same issue of it not being AD friendly, main issue being that I'm currently computing ∑e_jk and ∑e_ki individually for each e_ji, which I guess is to be done with some sort of matrix multiplication.
I'm not sure yet how its to be done using apply_edges, but I'll look more into it(will try to understand how its done in pyTorch/DGL) and let you know any updates.
Verified outputs with the pytorch implementation, will add tests now.