Open datalw opened 3 months ago
Oh, I've just realized the problem is, that there is only one source in this test signal and it is overdetermined.
Hi, I have to reopen this issue, because the reason was apparently not what I have found earlier. With other data, I experience this warning as well.
The correct reason is that in the function auxiva()
in the script auxiva.py
, WV
has got nan
first, after the line WV = np.matmul(W_hat, V)
. If I have understood it right - please correct me if not - W_hat
is initialized at the beginning and the value should not change, after the iterations have begun. But it changes anyway sometimes along the iterations. I looked into the code, there are variable assignments like
W = W_hat[:, :n_src, :]
J = W_hat[:, n_src:, :n_src]
In this case, if W
or J
change after the assignments, W_hat
will be partially changed along. I not sure, if this is the way the codes are supposed to run. A simple example of unexpected change of a variable see here.
Codes to re-produce the warning:
import pyroomacoustics as pra
import numpy as np
iva_input = np.load("0th_iva_input.npy")
epoch_scvs, demix = pra.bss.auxiva(iva_input, n_src=iva_input.shape[-1], n_iter=20, proj_back=False, model='laplace',
init_eig=False, return_filters=True)
The sample input can be found here.
Because the warning does not happen in every run, one might have to run it several times.
Hello,
I tried the function
pyroomacoustics.bss.auxiva.auxiva
and got some results. But for one test signal, I got onlynan
in the result without getting any error while running the script. I don't know where the error could be, whether it is a bug or it's because of the signal.Sometimes I got
RuntimeWarning: invalid value encountered in sqrt W[:, s, :] /= np.sqrt(denom[:, :, 0])
. But sometimes there is no warning, and the result was stillnan
.Could you help me with this? Thanks a lot!
The test signal in time-frequency presentation (ntime n frequency band nchannel) in .npy format is here: https://drive.google.com/file/d/1POObDnmY5ej5fdpeumS_PA0Ja8ZIb9W0/view?usp=sharing
Btw. I didn't use STFT, because I needed VMD to decomposite the signal. So in a sense, it is a time-frequency presentation.