From dfd24292fb6382a49aed4c7cfca95dd964b86203 Mon Sep 17 00:00:00 2001 From: "Anthony D. Blaom" Date: Tue, 13 Oct 2020 16:39:47 +1300 Subject: [PATCH 1/8] fix doc string --- src/machines.jl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/machines.jl b/src/machines.jl index 5abd7915..cd7613c6 100644 --- a/src/machines.jl +++ b/src/machines.jl @@ -618,8 +618,7 @@ keyword | values | default `format` | `:julia_serialize`, `:BSON` | `:julia_serialize` `compression` | `:gzip`, `:none` | `:none` -See (see -[https://github.com/invenia/JLSO.jl](https://github.com/invenia/JLSO.jl) +See [https://github.com/invenia/JLSO.jl](https://github.com/invenia/JLSO.jl) for details. Machines are de-serialized using the `machine` constructor as shown in From e9206ee9ccf6ab987634e6326d282c0e90d81206 Mon Sep 17 00:00:00 2001 From: Okon Samuel <39421418+OkonSamuel@users.noreply.github.com> Date: Sun, 18 Oct 2020 15:25:28 +0100 Subject: [PATCH 2/8] fixed typo in value assigned to `report` --- src/resampling.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/resampling.jl b/src/resampling.jl index 13510b8a..c6c9c64e 100644 --- a/src/resampling.jl +++ b/src/resampling.jl @@ -1042,7 +1042,7 @@ function MLJBase.update(resampler::Resampler{Holdout}, _acceleration, false) - report = NamedTuple + report = NamedTuple() return fitresult, cache, report From 85a75c8119aac5524179ba11f46437dbda5dab72 Mon Sep 17 00:00:00 2001 From: Venkateshprasad Date: Mon, 2 Nov 2020 13:57:21 +0530 Subject: [PATCH 3/8] Avoiding cosh overflow for large nums --- src/measures/continuous.jl | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/measures/continuous.jl b/src/measures/continuous.jl index 39045443..7fbbb8f7 100644 --- a/src/measures/continuous.jl +++ b/src/measures/continuous.jl @@ -346,7 +346,10 @@ metadata_measure(LogCosh; supports_weights = false, docstring = "log cosh loss; aliases: `log_cosh`.") -function (log_cosh::LogCosh)(ŷ::Vec{<:Real}, y::Vec{<:Real}) +softplus(x::Vec{<:Real}) = ifelse(x > [0], x .+ log1p.(exp.(-x)), log1p.(exp.(x))) + +function (log_cosh::LogCosh)(ŷ::Vec{<:T}, y::Vec{<:T}) where T <:Real check_dimensions(ŷ, y) - return log.(cosh.(ŷ-y)) + diff = ŷ - y + return diff += softplus(-2diff) .-= log(convert(T, 2)) end From 65243ca0ff40601b1857b6924432e3003f624770 Mon Sep 17 00:00:00 2001 From: Venkateshprasad Date: Mon, 2 Nov 2020 13:58:47 +0530 Subject: [PATCH 4/8] Test for softplus --- test/measures/continuous.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/test/measures/continuous.jl b/test/measures/continuous.jl index a444f2fe..3e7b9081 100644 --- a/test/measures/continuous.jl +++ b/test/measures/continuous.jl @@ -13,6 +13,7 @@ rng = StableRNG(666899) @test isapprox(mean(l2(yhat, y)), 5) @test isapprox(mean(l2(yhat, y, w)), rms(yhat, y, w)^2) @test isapprox(mean(log_cosh(yhat, y)), 1.3715546675) + @test isapprox(mean(MLJBase.softplus(yhat-y)), 1.1809245195) yhat = y .+ 1 @test isapprox(rmsl(yhat, y), From eed23f14c39e9abec6d210c2f474d00dfb011a96 Mon Sep 17 00:00:00 2001 From: Venkateshprasad Date: Mon, 2 Nov 2020 17:09:12 +0530 Subject: [PATCH 5/8] Making it compatible with 1.0 --- src/measures/continuous.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/measures/continuous.jl b/src/measures/continuous.jl index 7fbbb8f7..c5ccac1e 100644 --- a/src/measures/continuous.jl +++ b/src/measures/continuous.jl @@ -351,5 +351,5 @@ softplus(x::Vec{<:Real}) = ifelse(x > [0], x .+ log1p.(exp.(-x)), log1p.(exp.(x) function (log_cosh::LogCosh)(ŷ::Vec{<:T}, y::Vec{<:T}) where T <:Real check_dimensions(ŷ, y) diff = ŷ - y - return diff += softplus(-2diff) .-= log(convert(T, 2)) + return diff + softplus(-2diff) .- log(convert(T, 2)) end From 509c03b865548eb64ca245dc5d86ffee7937688c Mon Sep 17 00:00:00 2001 From: Venkateshprasad Date: Tue, 3 Nov 2020 12:10:32 +0530 Subject: [PATCH 6/8] Improving performance --- src/measures/continuous.jl | 6 +++--- test/measures/continuous.jl | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/measures/continuous.jl b/src/measures/continuous.jl index c5ccac1e..c65989f7 100644 --- a/src/measures/continuous.jl +++ b/src/measures/continuous.jl @@ -346,10 +346,10 @@ metadata_measure(LogCosh; supports_weights = false, docstring = "log cosh loss; aliases: `log_cosh`.") -softplus(x::Vec{<:Real}) = ifelse(x > [0], x .+ log1p.(exp.(-x)), log1p.(exp.(x))) +_softplus(x::T) where T<:Real = x > 0 ? x + log1p(exp(-x)) : log1p(exp(x)) +_log_cosh(x::T) where T<:Real = x + _softplus(-2x) - log(convert(T, 2)) function (log_cosh::LogCosh)(ŷ::Vec{<:T}, y::Vec{<:T}) where T <:Real check_dimensions(ŷ, y) - diff = ŷ - y - return diff + softplus(-2diff) .- log(convert(T, 2)) + return _log_cosh.(ŷ - y) end diff --git a/test/measures/continuous.jl b/test/measures/continuous.jl index 3e7b9081..a444f2fe 100644 --- a/test/measures/continuous.jl +++ b/test/measures/continuous.jl @@ -13,7 +13,6 @@ rng = StableRNG(666899) @test isapprox(mean(l2(yhat, y)), 5) @test isapprox(mean(l2(yhat, y, w)), rms(yhat, y, w)^2) @test isapprox(mean(log_cosh(yhat, y)), 1.3715546675) - @test isapprox(mean(MLJBase.softplus(yhat-y)), 1.1809245195) yhat = y .+ 1 @test isapprox(rmsl(yhat, y), From 049f82a5b868c2e5393f0c7e88b0de3e0a639d7e Mon Sep 17 00:00:00 2001 From: Venkateshprasad Date: Tue, 3 Nov 2020 13:46:02 +0530 Subject: [PATCH 7/8] Type stable --- src/measures/continuous.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/measures/continuous.jl b/src/measures/continuous.jl index c65989f7..e07fbdeb 100644 --- a/src/measures/continuous.jl +++ b/src/measures/continuous.jl @@ -346,7 +346,7 @@ metadata_measure(LogCosh; supports_weights = false, docstring = "log cosh loss; aliases: `log_cosh`.") -_softplus(x::T) where T<:Real = x > 0 ? x + log1p(exp(-x)) : log1p(exp(x)) +_softplus(x::T) where T<:Real = x > zero(T) ? x + log1p(exp(-x)) : log1p(exp(x)) _log_cosh(x::T) where T<:Real = x + _softplus(-2x) - log(convert(T, 2)) function (log_cosh::LogCosh)(ŷ::Vec{<:T}, y::Vec{<:T}) where T <:Real From 68c14a735a1903070bf861538f0ad92e482e01f1 Mon Sep 17 00:00:00 2001 From: "Anthony D. Blaom" Date: Wed, 4 Nov 2020 13:21:32 +1300 Subject: [PATCH 8/8] "Bump version to 0.15.4" --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 4bfea73d..574f0da1 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "MLJBase" uuid = "a7f614a8-145f-11e9-1d2a-a57a1082229d" authors = ["Anthony D. Blaom "] -version = "0.15.3" +version = "0.15.4" [deps] CategoricalArrays = "324d7699-5711-5eae-9e2f-1d82baa6b597"