Closed zaccharieramzi closed 5 years ago
We should probably set the attribute __is_decimated__ = False depending on the padding option in use in pywt, shouldn't we?
I don't understand why it depends on the padding option.
I actually think all the wavelets in pywt
are decimated when we use the classical wavedecn
. I say that because I was reading in the docs that they specify that to use an undecimated wavelet, you need to use the stationary wavelet.
Ok so this means that we should set is_decimated = True if the classical wavedecn is used.
In my understanding yes. I am submitting a PR for it as soon as possible.
So actually the problem is that there are 2 different kinds of attributes at play here:
__is_decimated__
which is a class attribute, set only for all the isap
wavelets.is_decimated
which is an instance attribute, set only for the pywt
wavelets.I think the right way to go is to use the instance attribute and set it when we compute the coefficients (that is when we know whether the wavelet is decimated or not) in decimated
or undecimated
for the isap
wavelets.
@AGrigis I see you coded that part, maybe you have thoughts on this ?
So actually, the instance attribute (is_decimated
) is supposed to be set in _set_transformation_parameters
for the isap
wavelets.
However this function is never called. It could be called when setting the data but since use_wrapping
is always False
when you have pysparse
, it never does.
I think it should be called during the initialisation I don't see why it should only be called when setting the data and we don't have pysparse
I think for the current time, we should just get rid of this check. People should be aware of what they are using and sometimes you might want to use an undecimated wavelet even in FISTA (it's going to be my case, computing the prox iteratively).
I agree with you. Go ahead and get rid of this check for the moment.
Closed by #17
When trying to use
sparse_rec_fista
withpywt
it fails with:This is because of the lines where we check whether the wavelet is decimated. We need to adapt these lines to not fail in the
pywt
case.