using Optimization, OptimizationOptimJL, OptimizationOptimisers
data = randn(2, 100)
idx_ranges = 1:size(data, 2)
loss(x, idx_rngs) = sum(abs2, data[:, idx_rngs] .- x)
objectivefun = OptimizationFunction(loss, Optimization.AutoForwardDiff())
x0 = [1.0, 1.0]
train_loader = DataLoader(idx_ranges; batchsize = 2, shuffle = true, partial=true)
optprob = OptimizationProblem(objectivefun, x0, train_loader)
# passes
opt = OptimizationOptimisers.Adam()
Optimization.solve(optprob,
opt,
maxiters=100)
# breaks
opt = OptimizationOptimJL.Adam()
Optimization.solve(optprob,
opt,
maxiters=100)