Open chloesrcb opened 3 years ago
Hello @AmelieVernay ,
Thanks for noticing about this. We already discussed about this via email, so I am just repeating here what we said : this is indeed a bug / missing feature, and it has been fixed in the branch python_engine
, which is planned to be merged into master
soon. We will do the checks as soon as the branch will be merged and the R bindings updated accordingly. So I am keeping this issue open for now.
Ok, thankyou!
Chloé and Amélie
@joanglaunes
I'm encountering a more general problem in pyKeOps - ComplexLazyTensor broadcasting is failing entirely. For example
a_i = ComplexLazyTensor(torch.rand(1, 3, 1, 1, 1, 11, 4, dtype=torch.cfloat))
b_i = ComplexLazyTensor(torch.rand(2, 1, 4, 4, 10, 1, 1, dtype=torch.cfloat))
print(a_i * b_i, flush=True)
fails for me.
Also, if I were to print the sizes of a_i
and b_i
, the sizes of the last dimensions would be 8 and 2, respectively, which correspond to the dimensions referenced in the error message.
Unfortunately, I cannot incorporate KeOps into my project without complex number support (even though it would be perfect).
Has this been addressed already in the python_engine
branch?
If so, is there a way I could install that branch directly?
Otherwise, is there any time frame on when we can expect the master
branch to be updated with the changes in the python_engine
branch?
Hello @twmitchel ,
In fact it looks like the bug you are mentioning had been addressed previously in the master
branch, because it appears to work in master
, as well as in python_engine
, whereas I can reproduce the bug in the current release. You can install the python_engine
branch as follows:
pip install git+https://github.com/getkeops/keops.git@python_engine
(also same without @python_engine
to install master
)
The python_engine
branch is supposed to be ready now, we just need to do more testing (so in fact getting your feedback about this branch will be great !)
It seems that, in both pyKeOps and RKeOps, the use of
Real2Complex
doesn't support broadcasting when using binary operations like addition. For instance, we can't add a single complex value (e.g. 2 + 3i) to a vector or a matrix, complex or not.Is that made on purpose ?
With RKeOps:
Detailed error:
With LazyTensors in pyKeOps:
Amélie Vernay and Chloé Serre-Combe