Skip to content

Commit 03c2708

Browse files
more fixes
1 parent 951d661 commit 03c2708

File tree

6 files changed

+23
-16
lines changed

6 files changed

+23
-16
lines changed

docs/src/index.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -203,20 +203,16 @@ versioninfo() # hide
203203
```@raw html
204204
</details>
205205
```
206-
207206
```@raw html
208207
<details><summary>A more complete overview of all dependencies and their versions is also provided.</summary>
209208
```
210-
211209
```@example
212210
using Pkg # hide
213211
Pkg.status(; mode = PKGMODE_MANIFEST) # hide
214212
```
215-
216213
```@raw html
217214
</details>
218215
```
219-
220216
```@eval
221217
using TOML
222218
using Markdown

lib/OptimizationManopt/src/OptimizationManopt.jl

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,6 @@ internal state.
1313
abstract type AbstractManoptOptimizer end
1414

1515
SciMLBase.supports_opt_cache_interface(opt::AbstractManoptOptimizer) = true
16-
SciMLBase.requiresgradient(opt::Union{GradientDescentOptimizer, ConjugateGradientDescentOptimizer, QuasiNewtonOptimizer, ConvexBundleOptimizer, FrankWolfeOptimizer}) = true
17-
SciMLBase.requireshessian(opt::Union{AdaptiveRegularizationCubicOptimizer, TrustRegionsOptimizer}) = true
18-
1916

2017
function __map_optimizer_args!(cache::OptimizationCache,
2118
opt::AbstractManoptOptimizer;
@@ -329,6 +326,15 @@ function call_manopt_optimizer(M::ManifoldsBase.AbstractManifold,
329326
end
330327

331328
## Optimization.jl stuff
329+
function SciMLBase.requiresgradient(opt::Union{
330+
GradientDescentOptimizer, ConjugateGradientDescentOptimizer,
331+
QuasiNewtonOptimizer, ConvexBundleOptimizer, FrankWolfeOptimizer})
332+
true
333+
end
334+
function SciMLBase.requireshessian(opt::Union{
335+
AdaptiveRegularizationCubicOptimizer, TrustRegionsOptimizer})
336+
true
337+
end
332338

333339
function build_loss(f::OptimizationFunction, prob, cb)
334340
function (::AbstractManifold, θ)

lib/OptimizationOptimJL/test/runtests.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using OptimizationOptimJL,
22
OptimizationOptimJL.Optim, Optimization, ForwardDiff, Zygote, ReverseDiff.
3-
Random, ModelingToolkit, Optimization.OptimizationBase.DifferentiationInterface
3+
Random, ModelingToolkit, Optimization.OptimizationBase.DifferentiationInterface
44
using Test
55

66
struct CallbackTester

lib/OptimizationPRIMA/src/OptimizationPRIMA.jl

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ SciMLBase.supports_opt_cache_interface(::PRIMASolvers) = true
1515
SciMLBase.allowsconstraints(::Union{LINCOA, COBYLA}) = true
1616
SciMLBase.allowsbounds(opt::Union{BOBYQA, LINCOA, COBYLA}) = true
1717
SciMLBase.requiresconstraints(opt::COBYLA) = true
18-
SciMLBase.requiresgradient(opt::Union{BOBYQA, LINCOA, COBYLA}) = true
19-
SciMLBase.requiresconsjac(opt::Union{LINCOA, COBYLA}) = true
18+
SciMLBase.requiresconsjac(opt::COBYLA) = true
2019
SciMLBase.requiresconshess(opt::COBYLA) = true
2120

2221
function Optimization.OptimizationCache(prob::SciMLBase.OptimizationProblem,
@@ -34,8 +33,14 @@ function Optimization.OptimizationCache(prob::SciMLBase.OptimizationProblem,
3433
throw("We evaluate the jacobian and hessian of the constraints once to automatically detect
3534
linear and nonlinear constraints, please provide a valid AD backend for using COBYLA.")
3635
else
37-
f = Optimization.instantiate_function(
38-
prob.f, reinit_cache.u0, prob.f.adtype, reinit_cache.p, num_cons)
36+
if opt isa COBYLA
37+
f = Optimization.instantiate_function(
38+
prob.f, reinit_cache.u0, prob.f.adtype, reinit_cache.p, num_cons,
39+
cons_j = true, cons_h = true)
40+
else
41+
f = Optimization.instantiate_function(
42+
prob.f, reinit_cache.u0, prob.f.adtype, reinit_cache.p, num_cons)
43+
end
3944
end
4045

4146
return Optimization.OptimizationCache(f, reinit_cache, prob.lb, prob.ub, prob.lcons,

src/sophia.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ function SciMLBase.__solve(cache::OptimizationCache{
7878
for _ in 1:maxiters
7979
for (i, d) in enumerate(data)
8080
f.grad(gₜ, θ, d)
81-
x = cache.f(θ, cache.p, d...)
81+
x = cache.f(θ, d)
8282
opt_state = Optimization.OptimizationState(; iter = i,
8383
u = θ,
8484
objective = first(x),

test/minibatch.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,9 @@ optfun = OptimizationFunction(loss_adjoint,
5959
optprob = OptimizationProblem(optfun, pp, train_loader)
6060

6161
sol = Optimization.solve(optprob,
62-
Optimization.Sophia(; η = 0.5,
63-
λ = 0.0),
64-
maxiters = 1000)
62+
Optimization.Sophia(; η = 0.5,
63+
λ = 0.0),
64+
maxiters = 1000)
6565
@test 10res1.objective < l1
6666

6767
optfun = OptimizationFunction(loss_adjoint,

0 commit comments

Comments
 (0)