Flux.jl/test/optimise.jl

30 lines
670 B
Julia
Raw Normal View History

2017-10-12 08:31:38 +00:00
using Flux.Optimise
using Flux.Tracker
@testset "Optimise" begin
2017-12-08 17:10:29 +00:00
w = randn(10, 10)
2018-06-08 11:24:41 +00:00
@testset for Opt in [SGD, Nesterov, Momentum, ADAM, AdaMax, RMSProp, ps -> ADAGrad(ps, 0.1), ADADelta, AMSGrad, NADAM]
2017-12-08 17:10:29 +00:00
w = param(randn(10, 10))
loss(x) = Flux.mse(w*x, w*x)
opt = Opt([w])
for t=1:10^5
l = loss(rand(10))
back!(l)
opt()
2017-10-12 08:31:38 +00:00
end
2017-12-08 17:10:29 +00:00
@test Flux.mse(w, w) < 0.01
end
2017-10-12 08:31:38 +00:00
end
2017-12-13 18:24:56 +00:00
@testset "Training Loop" begin
i = 0
l = param(1)
Flux.train!(() -> (sleep(0.1); i += 1; l),
Iterators.repeated((), 100),
()->(),
cb = Flux.throttle(() -> (i > 3 && :stop), 1))
@test 3 < i < 50
end