How to use qgt in t-vmc #1289
-
Hi,
While this works for the
As I understand, the (220,) corresponds to the number of parameters. But why is the qgt twice of that? So, while it works with complex parameters, what would be the correct way to use qgt when using real parameters? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
Hi, I'm on holiday so I'm not going to be very responsive until the 16th (in the meantime @femtobit might help if he's not on holiday as well). The thing you are trying to run is actually unsupported by netket (and we discuss it in the paper). There's a PR open (#1261 ) to fix it, which will be merged soon after I'm back from holiday. It might contain some discussion on why it does not work right now. So, the reason you see 440 instead of 220 is because internally in some QGT implementation we split in real and imaginary part. In your case, we are splitting the complex vector gamma_f in a double-sized real vector, but your parameters are real and this leads to error. For a bunch of reasons (if you are curious, I can discuss them when I'm back) we did not want to support this operation (in short, it would generate the wrong dynamics). We should do a better job of throwing a more informative error rather than this one. |
Beta Was this translation helpful? Give feedback.
Hi, I'm on holiday so I'm not going to be very responsive until the 16th (in the meantime @femtobit might help if he's not on holiday as well).
The thing you are trying to run is actually unsupported by netket (and we discuss it in the paper).
Current released netket can only evolve networks with complex parameters.
If you have real parameters, it cannot work because we are computing the (real values) gradient of the energy instead of the (complex valued) forces vector.
There's a PR open (#1261 ) to fix it, which will be merged soon after I'm back from holiday. It might contain some discussion on why it does not work right now.
If you use the version from that PR, you should replace calls…