fooof-tools / fooof

Parameterizing neural power spectra into periodic & aperiodic components.
https://fooof-tools.github.io/
Apache License 2.0
364 stars 98 forks source link

Inputting bounds for model fitting raises guess variable dimensionality error in <curve_fit>/<least_squares> #216

Closed tresupan closed 2 years ago

tresupan commented 3 years ago

Hi!

I was having difficulty inputting bounds for the aperiodic fitting. When I would initialize self._ap_bounds with values other than np.inf I would get an error when the spec param _simple_ap_fit function called curve_fit. Inside curve_fit and subsequently least_squares this seems to cause some change in the guess parameters which leads to a ValueError resulting from the guess variable having the wrong dimensions. I think this dimension check only happens when you input restricted bounds. I can get rid of the error by indexing the guess variable that gets passed into curve_fit:

In _simple_ap_fit I add “[0]”: guess = np.array([off_guess + kne_guess + exp_guess])[0]

ryanhammonds commented 3 years ago

@tresupan I was getting a similar error as the tau freq approached 0hz. Installing from main rather than pypi fixed this issue. It looks #206 was the fix.

TomDonoghue commented 2 years ago

Yeh, this issue should be fixed in the main branch! If there are any follow ups / continuing issues, feel free to re-open, but otherwise I am going to close this for now.