Diffusers.jl/test/BetaSchedules.jl

34 lines
1.1 KiB
Julia
Raw 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
β_linear = linear_beta_schedule(T)
β_scaled_linear = scaled_linear_beta_schedule(T)
β_cosine = cosine_beta_schedule(T)
β_sigmoid = sigmoid_beta_schedule(T)
β_exponential = exponential_beta_schedule(T)
α̅_linear = cumprod(1 .- β_linear)
α̅_scaled_linear = cumprod(1 .- β_scaled_linear)
α̅_cosine = cumprod(1 .- β_cosine)
α̅_sigmoid = cumprod(1 .- β_sigmoid)
α̅_exponential = cumprod(1 .- β_exponential)
# arxiv:2208.11970 Eq. 109
SNR_linear = α̅_linear ./ (1 .- α̅_linear)
SNR_scaled_linear = α̅_scaled_linear ./ (1 .- α̅_scaled_linear)
SNR_cosine = α̅_cosine ./ (1 .- α̅_cosine)
SNR_sigmoid = α̅_sigmoid ./ (1 .- α̅_sigmoid)
SNR_exponential = α̅_exponential ./ (1 .- α̅_exponential)
@test all(diff(SNR_linear) .<= 0)
@test all(diff(SNR_scaled_linear) .<= 0)
@test all(diff(SNR_cosine) .<= 0)
@test all(diff(SNR_sigmoid) .<= 0)
@test all(diff(SNR_exponential) .<= 0)
end
end