Diffusers.jl/test/BetaSchedules.jl

51 lines
1.1 KiB
Julia
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Diffusers.BetaSchedules
using Test
@testset "Variance schedules tests" begin
@testset "SNR decreases monotonically" begin
T = 1000
for beta_schedule_type in [
linear_beta_schedule,
scaled_linear_beta_schedule,
cosine_beta_schedule,
sigmoid_beta_schedule,
exponential_beta_schedule,
]
@testset "Variance schedule == $beta_schedule_type" begin
β = beta_schedule_type(T)
α = 1 .- β
α̅ = cumprod(α)
SNR = α̅ ./ (1 .- α̅)
@test all(diff(SNR) .<= 0)
end
end
end
@testset "ZeroSNR rescaling" begin
T = 1000
for beta_schedule_type in [
linear_beta_schedule,
scaled_linear_beta_schedule,
cosine_beta_schedule,
sigmoid_beta_schedule,
exponential_beta_schedule,
]
@testset "Variance schedule == $beta_schedule_type" begin
β = rescale_zero_terminal_snr(beta_schedule_type(T))
α = 1 .- β
α̅ = cumprod(α)
SNR = α̅ ./ (1 .- α̅)
@test SNR[end] 0
end
end
end
end