Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DiffEqFlux could handle infinite loss better. #70

Closed
freemin7 opened this issue Jul 21, 2019 · 2 comments
Closed

DiffEqFlux could handle infinite loss better. #70

freemin7 opened this issue Jul 21, 2019 · 2 comments

Comments

@freemin7
Copy link

I've been (miss)using DiffEqFlux for some project with a differential equation whose parameter space has solutions with finite escape time.

Loss is infinite in top-level scope at base/none in at base/none in #train!#12 at Flux/qXNjB/src/optimise/train.jl:69 in macro expansion at Juno/TfNYn/src/progress.jl:124 in macro expansion at Flux/qXNjB/src/optimise/train.jl:71 in gradient at Tracker/RRYy6/src/back.jl:164 in #gradient#24 at Tracker/RRYy6/src/back.jl:164 in gradient_ at Tracker/RRYy6/src/back.jl:98 in losscheck at Tracker/RRYy6/src/back.jl:154

It currently throws an error under these conditions. The issue came up in this tread of mine: https://discourse.julialang.org/t/tracking-initial-condition-to-optimize-starting-value-too-diffeqflux/26596

A solution in this case was proposed:
Since ADAM is inherently stochastic, it could have functionality to discard Infs and try a different randomized points to try and not hit the bad area. Machine learning problems generally don’t have this bifurcation behavior so it doesn’t show up as much, so I think it was just overlooked.

Could you look into it solving this in general?

@ChrisRackauckas
Copy link
Member

ChrisRackauckas commented Jul 25, 2019

@MikeInnes

@ChrisRackauckas
Copy link
Member

Handled by using BFGS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants