From 70843c56de744652f8dc0f201fdfcd7ac99d0ba1 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Mon, 9 Sep 2024 11:06:38 -0400 Subject: [PATCH 01/21] feat: update to latest Lux and LuxCore releases --- Project.toml | 10 ++-- examples/SymbolicOptimalControl/main.jl | 2 +- src/layers/Layers.jl | 3 +- src/layers/attention.jl | 5 +- src/layers/conv_norm_act.jl | 35 ++++++------ src/layers/dynamic_expressions.jl | 8 +-- src/layers/embeddings.jl | 74 ++++++++++++++++++++++++- src/layers/encoder.jl | 13 +++-- src/layers/hamiltonian.jl | 4 +- src/layers/mlp.jl | 33 ++++++----- src/layers/periodic_embedding.jl | 69 ----------------------- src/layers/spline.jl | 2 +- src/layers/tensor_product.jl | 6 +- src/vision/Vision.jl | 2 +- src/vision/vgg.jl | 9 +-- src/vision/vit.jl | 6 +- 16 files changed, 143 insertions(+), 138 deletions(-) delete mode 100644 src/layers/periodic_embedding.jl diff --git a/Project.toml b/Project.toml index 242119b..2076058 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "Boltz" uuid = "4544d5e4-abc5-4dea-817f-29e4c205d9c8" authors = ["Avik Pal and contributors"] -version = "0.4.2" +version = "1.0.0" [deps] ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" @@ -52,11 +52,11 @@ DataInterpolations = "< 5.3" DynamicExpressions = "0.16, 0.17, 0.18, 0.19" ForwardDiff = "0.10.36" GPUArraysCore = "0.1.6" -JLD2 = "0.4.48" +JLD2 = "0.4.48, 0.5" LazyArtifacts = "1.10" -Lux = "0.5.66" -LuxCore = "0.1.24" -MLDataDevices = "1.0.1" +Lux = "1" +LuxCore = "1" +MLDataDevices = "1.1" Markdown = "1.10" Metalhead = "0.9" NNlib = "0.9.21" diff --git a/examples/SymbolicOptimalControl/main.jl b/examples/SymbolicOptimalControl/main.jl index 47b939d..6a03a0f 100644 --- a/examples/SymbolicOptimalControl/main.jl +++ b/examples/SymbolicOptimalControl/main.jl @@ -225,7 +225,7 @@ nothing #hide hybrid_mlp = Chain(Dense(1 => 4, gelu), Layers.DynamicExpressionsLayer(OperatorEnum(; binary_operators=[+, -, *, /]), best_eq), - Dense(4 => 1); disable_optimizations=true) + Dense(4 => 1)) # There you have it! It is that easy to take the fitted Symbolic Expression and combine it # with a neural network. Let's see how it performs before fintetuning. diff --git a/src/layers/Layers.jl b/src/layers/Layers.jl index 10b8929..e7f1351 100644 --- a/src/layers/Layers.jl +++ b/src/layers/Layers.jl @@ -11,7 +11,7 @@ using Random: AbstractRNG using ForwardDiff: ForwardDiff using Lux: Lux, LuxOps, StatefulLuxLayer -using LuxCore: LuxCore, AbstractExplicitLayer, AbstractExplicitContainerLayer +using LuxCore: LuxCore, AbstractLuxLayer, AbstractLuxContainerLayer, AbstractLuxWrapperLayer using MLDataDevices: get_device, CPUDevice using NNlib: NNlib using WeightInitializers: zeros32, randn32 @@ -35,7 +35,6 @@ include("encoder.jl") include("embeddings.jl") include("hamiltonian.jl") include("mlp.jl") -include("periodic_embedding.jl") include("spline.jl") include("tensor_product.jl") diff --git a/src/layers/attention.jl b/src/layers/attention.jl index 61aa315..b1504f3 100644 --- a/src/layers/attention.jl +++ b/src/layers/attention.jl @@ -13,7 +13,7 @@ Multi-head self-attention layer - `proj_dropout_prob`: dropout probability after the projection layer """ @concrete struct MultiHeadSelfAttention <: - AbstractExplicitContainerLayer{(:qkv_layer, :dropout, :projection)} + AbstractLuxContainerLayer{(:qkv_layer, :dropout, :projection)} qkv_layer dropout projection @@ -27,7 +27,8 @@ function MultiHeadSelfAttention( return MultiHeadSelfAttention( Lux.Dense(in_planes, in_planes * 3; use_bias=use_qkv_bias), Lux.Dropout(attention_dropout_rate), - Lux.Chain(Lux.Dense(in_planes => in_planes), Lux.Dropout(projection_dropout_rate)), + Lux.Chain(Lux.Dense(in_planes => in_planes), + Lux.Dropout(projection_dropout_rate)), number_heads ) end diff --git a/src/layers/conv_norm_act.jl b/src/layers/conv_norm_act.jl index 86f374d..142360c 100644 --- a/src/layers/conv_norm_act.jl +++ b/src/layers/conv_norm_act.jl @@ -19,39 +19,40 @@ Construct a Chain of convolutional layers with normalization and activation func - `norm_kwargs`: keyword arguments for the normalization layers - `last_layer_activation`: set to `true` to apply the activation function to the last layer - -## Internal Keyword Arguments - -Don't rely on these, they are for internal use only. - - - `flatten_model`: set to `true` construct a flat chain without internal chains (not - recommended) """ +@concrete struct ConvNormActivation <: AbstractLuxWrapperLayer{:model} + model <: Lux.Chain +end + function ConvNormActivation( kernel_size::Dims, in_chs::Integer, hidden_chs::Dims{N}, activation::F=NNlib.relu; norm_layer::NF=nothing, conv_kwargs=(;), norm_kwargs=(;), - flatten_model::Bool=false, last_layer_activation::Bool=false) where {N, F, NF} - layers = Vector{AbstractExplicitLayer}(undef, N) + last_layer_activation::Bool=false) where {N, F, NF} + layers = Vector{AbstractLuxLayer}(undef, N) for (i, out_chs) in enumerate(hidden_chs) act = i != N ? activation : (last_layer_activation ? activation : identity) layers[i] = conv_norm_act( i, kernel_size, in_chs => out_chs, act, norm_layer, conv_kwargs, norm_kwargs) in_chs = out_chs end - flatten_model && return Lux.Chain(layers...; name="ConvNormActivation") inner_blocks = NamedTuple{ntuple(i -> Symbol(:block, i), N)}(layers) - return Lux.Chain(inner_blocks; name="ConvNormActivation", disable_optimizations=true) + return ConvNormActivation(Lux.Chain(inner_blocks)) +end + +@concrete struct ConvNormActivationBlock <: AbstractLuxWrapperLayer{:block} + block <: Union{<:Lux.Conv, Lux.Chain} end function conv_norm_act( i::Integer, kernel_size::Dims, (in_chs, out_chs)::Pair{<:Integer, <:Integer}, activation::F, norm_layer::NF, conv_kwargs, norm_kwargs) where {F, NF} - name = "ConvNormActBlock" - norm_layer === nothing && return Lux.Chain(; - conv=Lux.Conv(kernel_size, in_chs => out_chs, activation; conv_kwargs...), - name) - return Lux.Chain(; conv=Lux.Conv(kernel_size, in_chs => out_chs; conv_kwargs...), - norm=norm_layer(i, out_chs, activation; norm_kwargs...), name) + model = if norm_layer === nothing + Lux.Conv(kernel_size, in_chs => out_chs, activation; conv_kwargs...) + else + Lux.Chain(; conv=Lux.Conv(kernel_size, in_chs => out_chs; conv_kwargs...), + norm=norm_layer(i, out_chs, activation; norm_kwargs...)) + end + return ConvNormActivationBlock(model) end """ diff --git a/src/layers/dynamic_expressions.jl b/src/layers/dynamic_expressions.jl index 9252eea..b0722fb 100644 --- a/src/layers/dynamic_expressions.jl +++ b/src/layers/dynamic_expressions.jl @@ -67,13 +67,11 @@ julia> ∂ps.layer_1.layer_2.params ≈ Float32[-31.0, 90.0] true ``` """ -@concrete struct DynamicExpressionsLayer <: AbstractExplicitContainerLayer{(:chain,)} - chain +@concrete struct DynamicExpressionsLayer <: AbstractLuxWrapperLayer{:chain} + chain <: Lux.Chain end -(de::DynamicExpressionsLayer)(x, ps, st) = de.chain(x, ps, st) - -@concrete struct InternalDynamicExpressionWrapper <: AbstractExplicitLayer +@concrete struct InternalDynamicExpressionWrapper <: AbstractLuxLayer operator_enum expression eval_options diff --git a/src/layers/embeddings.jl b/src/layers/embeddings.jl index 988d6bc..9feafc9 100644 --- a/src/layers/embeddings.jl +++ b/src/layers/embeddings.jl @@ -4,7 +4,7 @@ Appends class tokens to an input with embedding dimension `dim` for use in many vision transformer models. """ -@concrete struct ClassTokens <: AbstractExplicitLayer +@concrete struct ClassTokens <: AbstractLuxLayer dim::Int init end @@ -29,7 +29,7 @@ end Positional embedding layer used by many vision transformer-like models. """ -@concrete struct ViPosEmbedding <: AbstractExplicitLayer +@concrete struct ViPosEmbedding <: AbstractLuxLayer embedding_size::Int number_patches::Int init @@ -44,3 +44,73 @@ function LuxCore.initialparameters(rng::AbstractRNG, v::ViPosEmbedding) end (v::ViPosEmbedding)(x, ps, st) = x .+ ps.vectors, st + +""" + PeriodicEmbedding(idxs, periods) + +Create an embedding periodic in some inputs with specified periods. Input indices not in +`idxs` are passed through unchanged, but inputs in `idxs` are moved to the end of the +output and replaced with their sines, followed by their cosines (scaled appropriately to +have the specified periods). This smooth embedding preserves phase information and enforces +periodicity. + +For example, `layer = PeriodicEmbedding([2, 3], [3.0, 1.0])` will create a layer periodic in +the second input with period 3.0 and periodic in the third input with period 1.0. In this +case, `layer([a, b, c, d], st) == ([a, d, sinpi(2 / 3.0 * b), sinpi(2 / 1.0 * c), cospi(2 / 3.0 * b), cospi(2 / 1.0 * c)], st)`. + +## Arguments + + - `idxs`: Indices of the periodic inputs + - `periods`: Periods of the periodic inputs, in the same order as in `idxs` + +## Inputs + + - `x` must be an `AbstractArray` with `issubset(idxs, axes(x, 1))` + - `st` must be a `NamedTuple` where `st.k = 2 ./ periods`, but on the same device as `x` + +## Returns + + - `AbstractArray` of size `(size(x, 1) + length(idxs), ...)` where `...` are the other + dimensions of `x`. + - `st`, unchanged + +## Example + +```jldoctest +julia> layer = Layers.PeriodicEmbedding([2], [4.0]) +PeriodicEmbedding([2], [4.0]) + +julia> ps, st = Lux.setup(Random.default_rng(), layer); + +julia> all(layer([1.1, 2.2, 3.3], ps, st)[1] .== + [1.1, 3.3, sinpi(2 / 4.0 * 2.2), cospi(2 / 4.0 * 2.2)]) +true +``` +""" +@concrete struct PeriodicEmbedding <: AbstractLuxLayer + idxs + periods +end + +function LuxCore.initialstates(::AbstractRNG, pe::PeriodicEmbedding) + return (; idxs=DataTransferBarrier(pe.idxs), k=2 ./ pe.periods) +end + +function (pe::PeriodicEmbedding)(x::AbstractVector, ps, st::NamedTuple) + return vec(first(pe(reshape(x, :, 1), ps, st))), st +end + +function (p::PeriodicEmbedding)(x::AbstractMatrix, _, st::NamedTuple) + idxs = st.idxs.val + other_idxs = @ignore_derivatives setdiff(axes(x, 1), idxs) + y = vcat(x[other_idxs, :], sinpi.(st.k .* x[idxs, :]), cospi.(st.k .* x[idxs, :])) + return y, st +end + +function (p::PeriodicEmbedding)(x::AbstractArray, ps, st::NamedTuple) + return reshape(first(p(reshape(x, size(x, 1), :), ps, st)), :, size(x)[2:end]...), st +end + +function Base.show(io::IO, ::MIME"text/plain", p::PeriodicEmbedding) + return print(io, "PeriodicEmbedding(", p.idxs, ", ", p.periods, ")") +end diff --git a/src/layers/encoder.jl b/src/layers/encoder.jl index 086a626..a8cd9cd 100644 --- a/src/layers/encoder.jl +++ b/src/layers/encoder.jl @@ -15,23 +15,26 @@ Transformer as used in the base ViT architecture [dosovitskiy2020image](@citep). - `mlp_ratio`: ratio of MLP layers to the number of input channels - `dropout_rate`: dropout rate """ +@concrete struct VisionTransformerEncoder <: AbstractLuxWrapperLayer{:chain} + chain <: Lux.Chain +end + function VisionTransformerEncoder( in_planes, depth, number_heads; mlp_ratio=4.0f0, dropout_rate=0.0f0) hidden_planes = floor(Int, mlp_ratio * in_planes) layers = [Lux.Chain( Lux.SkipConnection( - Lux.Chain(Lux.LayerNorm((in_planes, 1); affine=true), + Lux.Chain(Lux.LayerNorm((in_planes, 1); dims=1, affine=true), MultiHeadSelfAttention( in_planes, number_heads; attention_dropout_rate=dropout_rate, projection_dropout_rate=dropout_rate)), +), Lux.SkipConnection( - Lux.Chain(Lux.LayerNorm((in_planes, 1); affine=true), + Lux.Chain(Lux.LayerNorm((in_planes, 1); dims=1, affine=true), Lux.Chain(Lux.Dense(in_planes => hidden_planes, NNlib.gelu), Lux.Dropout(dropout_rate), Lux.Dense(hidden_planes => in_planes), - Lux.Dropout(dropout_rate)); - disable_optimizations=true), + Lux.Dropout(dropout_rate))), +)) for _ in 1:depth] - return Lux.Chain(layers...; disable_optimizations=true) + return VisionTransformerEncoder(Lux.Chain(layers...)) end diff --git a/src/layers/hamiltonian.jl b/src/layers/hamiltonian.jl index 66e8dd9..5268e43 100644 --- a/src/layers/hamiltonian.jl +++ b/src/layers/hamiltonian.jl @@ -12,7 +12,7 @@ returns the time derivatives for position and momentum. - `FST`: If `true`, then the type of the state returned by the model must be same as the type of the input state. See the documentation on `StatefulLuxLayer` for more information. - - `model`: A `Lux.AbstractExplicitLayer` neural network that returns the Hamiltonian of + - `model`: A `Lux.AbstractLuxLayer` neural network that returns the Hamiltonian of the system. The `model` must return a "batched scalar", i.e. all the dimensions of the output except the last one must be equal to 1. The last dimension must be equal to the batchsize of the input. @@ -36,7 +36,7 @@ returns the time derivatives for position and momentum. [Nested Autodiff](https://lux.csail.mit.edu/stable/manual/nested_autodiff) for more information and known limitations. """ -@concrete struct HamiltonianNN{FST} <: AbstractExplicitContainerLayer{(:model,)} +@concrete struct HamiltonianNN{FST} <: AbstractLuxWrapperLayer{:model} model autodiff end diff --git a/src/layers/mlp.jl b/src/layers/mlp.jl index be8920f..4d1c245 100644 --- a/src/layers/mlp.jl +++ b/src/layers/mlp.jl @@ -22,13 +22,15 @@ and dropout. - `last_layer_activation`: set to `true` to apply the activation function to the last layer """ +@concrete struct MLP <: AbstractLuxWrapperLayer{:chain} + chain <: Lux.Chain +end + function MLP(in_dims::Integer, hidden_dims::Dims{N}, activation::F=NNlib.relu; norm_layer::NF=nothing, dropout_rate::Real=0.0f0, last_layer_activation::Bool=false, dense_kwargs=(;), norm_kwargs=(;)) where {N, F, NF} @argcheck N > 0 - name = "MLP(in_dims=$in_dims, hidden_dims=$(hidden_dims[1:(N - 1)]), \ - out_dims=$(hidden_dims[N]))" - layers = Vector{AbstractExplicitLayer}(undef, N) + layers = Vector{AbstractLuxLayer}(undef, N) for (i, out_dims) in enumerate(hidden_dims) act = i != N ? activation : (last_layer_activation ? activation : identity) layers[i] = dense_norm_act_dropout(i, in_dims => out_dims, act, norm_layer, @@ -36,27 +38,32 @@ function MLP(in_dims::Integer, hidden_dims::Dims{N}, activation::F=NNlib.relu; in_dims = out_dims end inner_blocks = NamedTuple{ntuple(i -> Symbol(:block, i), N)}(layers) - return Lux.Chain(inner_blocks; name, disable_optimizations=true) + return MLP(Lux.Chain(inner_blocks)) +end + +@concrete struct DenseNormActDropoutBlock <: AbstractLuxWrapperLayer{:block} + block end function dense_norm_act_dropout( i::Integer, (in_dims, out_dims)::Pair{<:Integer, <:Integer}, activation::F, norm_layer::NF, dropout_rate::Real, dense_kwargs, norm_kwargs) where {F, NF} - name = "DenseNormActDropoutBlock" if iszero(dropout_rate) if norm_layer === nothing - return Lux.Chain(; - dense=Lux.Dense(in_dims => out_dims, activation; dense_kwargs...), name) + return DenseNormActDropoutBlock(Lux.Chain(; + dense=Lux.Dense(in_dims => out_dims, activation; dense_kwargs...))) end - return Lux.Chain(; dense=Lux.Dense(in_dims => out_dims; dense_kwargs...), - norm=norm_layer(i, out_dims, activation; norm_kwargs...), name) + return DenseNormActDropoutBlock(Lux.Chain(; + dense=Lux.Dense(in_dims => out_dims; dense_kwargs...), + norm=norm_layer(i, out_dims, activation; norm_kwargs...))) end if norm_layer === nothing - return Lux.Chain(; + return DenseNormActDropoutBlock(Lux.Chain(; dense=Lux.Dense(in_dims => out_dims, activation; dense_kwargs...), - dropout=Lux.Dropout(dropout_rate), name) + dropout=Lux.Dropout(dropout_rate))) end - return Lux.Chain(; dense=Lux.Dense(in_dims => out_dims; dense_kwargs...), + return DenseNormActDropoutBlock(Lux.Chain(; + dense=Lux.Dense(in_dims => out_dims; dense_kwargs...), norm=norm_layer(i, out_dims, activation; norm_kwargs...), - dropout=Lux.Dropout(dropout_rate), name) + dropout=Lux.Dropout(dropout_rate))) end diff --git a/src/layers/periodic_embedding.jl b/src/layers/periodic_embedding.jl deleted file mode 100644 index cba0c41..0000000 --- a/src/layers/periodic_embedding.jl +++ /dev/null @@ -1,69 +0,0 @@ -""" - PeriodicEmbedding(idxs, periods) - -Create an embedding periodic in some inputs with specified periods. Input indices not in -`idxs` are passed through unchanged, but inputs in `idxs` are moved to the end of the -output and replaced with their sines, followed by their cosines (scaled appropriately to -have the specified periods). This smooth embedding preserves phase information and enforces -periodicity. - -For example, `layer = PeriodicEmbedding([2, 3], [3.0, 1.0])` will create a layer periodic in -the second input with period 3.0 and periodic in the third input with period 1.0. In this -case, `layer([a, b, c, d], st) == ([a, d, sinpi(2 / 3.0 * b), sinpi(2 / 1.0 * c), cospi(2 / 3.0 * b), cospi(2 / 1.0 * c)], st)`. - -## Arguments - - - `idxs`: Indices of the periodic inputs - - `periods`: Periods of the periodic inputs, in the same order as in `idxs` - -## Inputs - - - `x` must be an `AbstractArray` with `issubset(idxs, axes(x, 1))` - - `st` must be a `NamedTuple` where `st.k = 2 ./ periods`, but on the same device as `x` - -## Returns - - - `AbstractArray` of size `(size(x, 1) + length(idxs), ...)` where `...` are the other - dimensions of `x`. - - `st`, unchanged - -## Example - -```jldoctest -julia> layer = Layers.PeriodicEmbedding([2], [4.0]) -PeriodicEmbedding([2], [4.0]) - -julia> ps, st = Lux.setup(Random.default_rng(), layer); - -julia> all(layer([1.1, 2.2, 3.3], ps, st)[1] .== - [1.1, 3.3, sinpi(2 / 4.0 * 2.2), cospi(2 / 4.0 * 2.2)]) -true -``` -""" -@concrete struct PeriodicEmbedding <: AbstractExplicitLayer - idxs - periods -end - -function LuxCore.initialstates(::AbstractRNG, pe::PeriodicEmbedding) - return (; idxs=DataTransferBarrier(pe.idxs), k=2 ./ pe.periods) -end - -function (pe::PeriodicEmbedding)(x::AbstractVector, ps, st::NamedTuple) - return vec(first(pe(reshape(x, :, 1), ps, st))), st -end - -function (p::PeriodicEmbedding)(x::AbstractMatrix, _, st::NamedTuple) - idxs = st.idxs.val - other_idxs = @ignore_derivatives setdiff(axes(x, 1), idxs) - y = vcat(x[other_idxs, :], sinpi.(st.k .* x[idxs, :]), cospi.(st.k .* x[idxs, :])) - return y, st -end - -function (p::PeriodicEmbedding)(x::AbstractArray, ps, st::NamedTuple) - return reshape(first(p(reshape(x, size(x, 1), :), ps, st)), :, size(x)[2:end]...), st -end - -function Base.show(io::IO, ::MIME"text/plain", p::PeriodicEmbedding) - return print(io, "PeriodicEmbedding(", p.idxs, ", ", p.periods, ")") -end diff --git a/src/layers/spline.jl b/src/layers/spline.jl index 737e2bd..e3729e0 100644 --- a/src/layers/spline.jl +++ b/src/layers/spline.jl @@ -35,7 +35,7 @@ Constructs a spline layer with the given basis function. work with GPU arrays. This will be fixed in the future by extending support to different basis functions. """ -@concrete struct SplineLayer{TG, B, T} <: AbstractExplicitLayer +@concrete struct SplineLayer{TG, B, T} <: AbstractLuxLayer grid_min::T grid_max::T grid_step::T diff --git a/src/layers/tensor_product.jl b/src/layers/tensor_product.jl index 3726f61..3dda431 100644 --- a/src/layers/tensor_product.jl +++ b/src/layers/tensor_product.jl @@ -23,7 +23,7 @@ where $W$ is the layer's weight, and returns $[z_1, \dots, z_{out}]$. Support for backends apart from CPU and CUDA is limited and slow due to limited support for `kron` in the backend. """ -@concrete struct TensorProductLayer <: AbstractExplicitContainerLayer{(:dense,)} +@concrete struct TensorProductLayer <: AbstractLuxContainerLayer{(:dense,)} basis_fns dense out_dim::Int @@ -41,12 +41,12 @@ function (tp::TensorProductLayer)(x::AbstractVector, ps, st) end function (tp::TensorProductLayer)(x::AbstractArray{T, N}, ps, st) where {T, N} - x′ = LuxOps.eachslice(x, Val(N - 1)) # [I1 x I2 x ... x B] x T + x′ = LuxOps.eachslice(x, Val(N - 1)) # [I1, I2, ..., B] × T @argcheck length(x′) == length(tp.basis_fns) y = mapfoldl(safe_kron, zip(tp.basis_fns, x′)) do (fn, xᵢ) eachcol(reshape(fn(xᵢ), :, prod(size(xᵢ)))) - end # [[D₁ x ... x Dₙ] x (I1 x I2 x ... x B)] + end # [[D₁, ..., Dₙ] × (I1, I2, ..., B)] z, stₙ = tp.dense(mapreduce_stack(y), ps, st) return reshape(z, size(x)[1:(end - 2)]..., tp.out_dim, size(x)[end]), stₙ diff --git a/src/vision/Vision.jl b/src/vision/Vision.jl index b766e39..15f3004 100644 --- a/src/vision/Vision.jl +++ b/src/vision/Vision.jl @@ -6,7 +6,7 @@ using ConcreteStructs: @concrete using Random: Random using Lux: Lux -using LuxCore: LuxCore, AbstractExplicitLayer +using LuxCore: LuxCore, AbstractLuxLayer using NNlib: relu using ..InitializeModels: maybe_initialize_model, INITIALIZE_KWARGS diff --git a/src/vision/vgg.jl b/src/vision/vgg.jl index 87c9bd6..0773a30 100644 --- a/src/vision/vgg.jl +++ b/src/vision/vgg.jl @@ -1,5 +1,5 @@ function vgg_convolutional_layers(config, batchnorm, inchannels) - layers = Vector{AbstractExplicitLayer}(undef, length(config) * 2) + layers = Vector{AbstractLuxLayer}(undef, length(config) * 2) input_filters = inchannels for (i, (chs, depth)) in enumerate(config) layers[2i - 1] = ConvBatchNormActivation( @@ -34,11 +34,8 @@ Create a VGG model [simonyan2014very](@citep). """ function VGG(imsize; config, inchannels, batchnorm=false, nclasses, fcsize, dropout) feature_extractor = vgg_convolutional_layers(config, batchnorm, inchannels) - # TODO: Use Lux.outputsize once it is ready - @show (imsize..., inchannels, 2) - outsize = Lux.compute_output_size( - feature_extractor, (imsize..., inchannels, 2), Random.default_rng()) - @show outsize + nilarray = Lux.NilSizePropagation.NilArray(imsize..., inchannels, 2) + outsize = LuxCore.outputsize(feature_extractor, nilarray, Random.default_rng()) classifier = vgg_classifier_layers(outsize, nclasses, fcsize, dropout) return Lux.Chain(feature_extractor, classifier) end diff --git a/src/vision/vit.jl b/src/vision/vit.jl index cc94349..5d03bfa 100644 --- a/src/vision/vit.jl +++ b/src/vision/vit.jl @@ -26,11 +26,9 @@ function VisionTransformer(; Lux.Dropout(embedding_dropout_rate), VisionTransformerEncoder( embed_planes, depth, number_heads; mlp_ratio, dropout_rate), - Lux.WrappedFunction(ifelse(pool === :class, x -> x[:, 1, :], second_dim_mean)); - disable_optimizations=true), + Lux.WrappedFunction(ifelse(pool === :class, x -> x[:, 1, :], second_dim_mean))), Lux.Chain(Lux.LayerNorm((embed_planes,); affine=true), - Lux.Dense(embed_planes, num_classes, tanh); disable_optimizations=true); - disable_optimizations=true) + Lux.Dense(embed_planes, num_classes, tanh))) end #! format: off From 3e32e753f91a7cc44feb1cea45d97fb0b089f26e Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Mon, 9 Sep 2024 11:12:18 -0400 Subject: [PATCH 02/21] chore: update versions --- docs/Project.toml | 2 +- examples/GettingStarted/Project.toml | 6 +++--- examples/SymbolicOptimalControl/Project.toml | 4 ++-- test/Project.toml | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/Project.toml b/docs/Project.toml index 8b47ca7..d4e0a76 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -15,6 +15,6 @@ Documenter = "1" DocumenterCitations = "1" DocumenterVitepress = "0.1" DynamicExpressions = "0.16, 0.17, 0.18, 0.19" -Lux = "0.5.65" +Lux = "1" Random = "1.10" Zygote = "0.6.70" diff --git a/examples/GettingStarted/Project.toml b/examples/GettingStarted/Project.toml index 8fc2c1a..c0183a5 100644 --- a/examples/GettingStarted/Project.toml +++ b/examples/GettingStarted/Project.toml @@ -8,10 +8,10 @@ Metalhead = "dbeba491-748d-5e0e-a39e-b530a07fa0cc" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" [compat] -Boltz = "0.4" +Boltz = "1" InteractiveUtils = "<0.0.1, 1" -JLD2 = "0.4.52" +JLD2 = "0.4.52, 0.5" Literate = "2.19" -Lux = "0.5.65" +Lux = "1" Metalhead = "0.9.3" Random = "1.10" diff --git a/examples/SymbolicOptimalControl/Project.toml b/examples/SymbolicOptimalControl/Project.toml index 407be76..f5e3c41 100644 --- a/examples/SymbolicOptimalControl/Project.toml +++ b/examples/SymbolicOptimalControl/Project.toml @@ -20,13 +20,13 @@ SymbolicRegression = "8254be44-1295-4e6a-a16d-46603ac705cb" SymbolicUtils = "d1185830-fcd6-423d-90d6-eec64667417b" [compat] -Boltz = "0.4" +Boltz = "1" CairoMakie = "0.12" ComponentArrays = "0.15.11" DynamicExpressions = "0.16, 0.17, 0.18, 0.19" Latexify = "0.16.2" Literate = "2" -Lux = "0.5" +Lux = "1" MLJ = "0.20.3" Optimization = "3.24.3" OptimizationOptimJL = "0.2.3, 0.3" diff --git a/test/Project.toml b/test/Project.toml index d1ce62e..030c99b 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -35,10 +35,10 @@ ForwardDiff = "0.10.36" GPUArraysCore = "0.1.6" Hwloc = "3.2.0" InteractiveUtils = "<0.0.1, 1" -Lux = "0.5.62" -LuxLib = "0.3.39" +Lux = "1" +LuxLib = "1" LuxTestUtils = "1.1.2" -MLDataDevices = "1.0.0" +MLDataDevices = "1" Metalhead = "0.9" Pkg = "1.10" Random = "1.10" From a2475d0be22f94c1356ff1854fb35cd7267b5c9b Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Mon, 9 Sep 2024 11:16:20 -0400 Subject: [PATCH 03/21] chore: apply formatting suggestion Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- src/layers/attention.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/layers/attention.jl b/src/layers/attention.jl index b1504f3..24f2602 100644 --- a/src/layers/attention.jl +++ b/src/layers/attention.jl @@ -28,7 +28,7 @@ function MultiHeadSelfAttention( Lux.Dense(in_planes, in_planes * 3; use_bias=use_qkv_bias), Lux.Dropout(attention_dropout_rate), Lux.Chain(Lux.Dense(in_planes => in_planes), - Lux.Dropout(projection_dropout_rate)), + Lux.Dropout(projection_dropout_rate)), number_heads ) end From 9495a669910fa12ebf6113c2e83acba08c7effce Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Mon, 9 Sep 2024 11:21:26 -0400 Subject: [PATCH 04/21] docs: update doc builder script --- .github/workflows/Documentation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Documentation.yml b/.github/workflows/Documentation.yml index 7c65ee3..45853eb 100644 --- a/.github/workflows/Documentation.yml +++ b/.github/workflows/Documentation.yml @@ -40,7 +40,7 @@ jobs: - name: Pull Julia cache uses: julia-actions/cache@v2 - name: Install documentation dependencies - run: julia --project=docs -e 'using Pkg; pkg"dev ."; Pkg.instantiate(); Pkg.precompile(); Pkg.status()' + run: julia --project=docs -e 'using Pkg; Pkg.develop(Pkg.PackageSpec(path=".")); Pkg.instantiate(); Pkg.precompile(); Pkg.status()' - name: Build the tutorials run: julia --project=docs docs/tutorials.jl - name: Build and deploy docs From 1d5c974262ad7930074827ff1899162d1fc1d0a8 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Mon, 9 Sep 2024 11:21:34 -0400 Subject: [PATCH 05/21] fix: change wrapper type --- src/layers/tensor_product.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/layers/tensor_product.jl b/src/layers/tensor_product.jl index 3dda431..efb8e7b 100644 --- a/src/layers/tensor_product.jl +++ b/src/layers/tensor_product.jl @@ -23,7 +23,7 @@ where $W$ is the layer's weight, and returns $[z_1, \dots, z_{out}]$. Support for backends apart from CPU and CUDA is limited and slow due to limited support for `kron` in the backend. """ -@concrete struct TensorProductLayer <: AbstractLuxContainerLayer{(:dense,)} +@concrete struct TensorProductLayer <: AbstractLuxWrapperLayer{:dense} basis_fns dense out_dim::Int From da6051e05a14295baaa6116545ff760fe3740a78 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Mon, 9 Sep 2024 11:24:55 -0400 Subject: [PATCH 06/21] fix: update Boltz compat in docs --- docs/Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Project.toml b/docs/Project.toml index d4e0a76..fffba9e 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -10,7 +10,7 @@ Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" [compat] -Boltz = "0.4" +Boltz = "1" Documenter = "1" DocumenterCitations = "1" DocumenterVitepress = "0.1" From c980ef7405dffe7b7db58bac7752dc713ea285dc Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Mon, 9 Sep 2024 11:30:46 -0400 Subject: [PATCH 07/21] fix: old kwargs removed --- src/layers/conv_norm_act.jl | 4 ++-- src/vision/vgg.jl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/layers/conv_norm_act.jl b/src/layers/conv_norm_act.jl index 142360c..93714a0 100644 --- a/src/layers/conv_norm_act.jl +++ b/src/layers/conv_norm_act.jl @@ -1,7 +1,7 @@ """ ConvNormActivation(kernel_size::Dims, in_chs::Integer, hidden_chs::Dims{N}, activation; norm_layer=nothing, conv_kwargs=(;), norm_kwargs=(;), - last_layer_activation::Bool=false, flatten_model::Bool=false) where {N} + last_layer_activation::Bool=false) where {N} Construct a Chain of convolutional layers with normalization and activation functions. @@ -58,7 +58,7 @@ end """ ConvBatchNormActivation(kernel_size::Dims, (in_filters, out_filters)::Pair{Int, Int}, depth::Int, act::F; use_norm::Bool=true, conv_kwargs=(;), - last_layer_activation::Bool=true, norm_kwargs=(;), flatten_model=false) where {F} + last_layer_activation::Bool=true, norm_kwargs=(;)) where {F} This function is a convenience wrapper around [`ConvNormActivation`](@ref) that constructs a chain with `norm_layer` set to `Lux.BatchNorm` if `use_norm` is `true` and `nothing` diff --git a/src/vision/vgg.jl b/src/vision/vgg.jl index 0773a30..a4c1eb9 100644 --- a/src/vision/vgg.jl +++ b/src/vision/vgg.jl @@ -4,7 +4,7 @@ function vgg_convolutional_layers(config, batchnorm, inchannels) for (i, (chs, depth)) in enumerate(config) layers[2i - 1] = ConvBatchNormActivation( (3, 3), input_filters => chs, depth, relu; last_layer_activation=true, - conv_kwargs=(; pad=(1, 1)), use_norm=batchnorm, flatten_model=true) + conv_kwargs=(; pad=(1, 1)), use_norm=batchnorm) layers[2i] = Lux.MaxPool((2, 2)) input_filters = chs end From ba185c3a89c5ae008932b5a27c29602cd3677b01 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Mon, 9 Sep 2024 13:04:48 -0400 Subject: [PATCH 08/21] refactor: rework how pretrained models are loaded --- examples/GettingStarted/main.jl | 14 +++------- ext/BoltzMetalheadExt.jl | 30 ++++++++++----------- src/basis.jl | 14 ++++------ src/initialize.jl | 31 ---------------------- src/layers/Layers.jl | 6 ++--- src/layers/embeddings.jl | 35 +++++++++++++++++++++++++ src/vision/Vision.jl | 26 ++++++++++++++----- src/vision/extensions.jl | 42 ++++++++++++++++++++---------- src/vision/vgg.jl | 46 ++++++++++++++++++++++----------- src/vision/vit.jl | 36 ++++++++++---------------- test/Project.toml | 2 ++ test/layer_tests.jl | 2 ++ 12 files changed, 157 insertions(+), 127 deletions(-) diff --git a/examples/GettingStarted/main.jl b/examples/GettingStarted/main.jl index c1b9d69..4f997ee 100644 --- a/examples/GettingStarted/main.jl +++ b/examples/GettingStarted/main.jl @@ -29,16 +29,10 @@ model = Layers.MLP(784, (256, 10), relu) # ## How about VGG? # -# !!! warning "Returned Values" -# -# The returned value from `Vision` module functions are a 3 tuple of (model, ps, st). -# The `ps` and `st` are the parameters and states of the model respectively. -# # Let's take a look at the `Vision` module. We can construct a VGG model with the # following code: -model, _, _ = Vision.VGG(13) -model +Vision.VGG(13) # We can also load pretrained ImageNet weights using @@ -48,8 +42,7 @@ model using JLD2 -model, _, _ = Vision.VGG(13; pretrained=true) -model +Vision.VGG(13; pretrained=true) # ## Loading Models from Metalhead (Flux.jl) @@ -57,5 +50,4 @@ model using Metalhead -model, _, _ = Vision.ResNet(18) -model +Vision.ResNet(18) diff --git a/ext/BoltzMetalheadExt.jl b/ext/BoltzMetalheadExt.jl index 20e01c6..5f92e3b 100644 --- a/ext/BoltzMetalheadExt.jl +++ b/ext/BoltzMetalheadExt.jl @@ -6,40 +6,38 @@ using Metalhead: Metalhead using Lux: Lux, FromFluxAdaptor using Boltz: Boltz, Utils, Vision -using Boltz.InitializeModels: maybe_initialize_model Utils.is_extension_loaded(::Val{:Metalhead}) = true -function Vision.AlexNetMetalhead(; pretrained=false, kwargs...) +function Vision.AlexNetMetalhead() model = FromFluxAdaptor()(Metalhead.AlexNet().layers) - pretrained && (model = Lux.Chain(model[1], model[2])) # Compatibility with pretrained weights - return maybe_initialize_model(:alexnet, model; pretrained, kwargs...) + return :alexnet, model end -function Vision.ResNetMetalhead(depth::Int; kwargs...) +function Vision.ResNetMetalhead(depth::Int) @argcheck depth in (18, 34, 50, 101, 152) model = FromFluxAdaptor()(Metalhead.ResNet(depth).layers) - return maybe_initialize_model(Symbol(:resnet, depth), model; kwargs...) + return Symbol(:resnet, depth), model end -function Vision.ResNeXtMetalhead(depth::Int; kwargs...) +function Vision.ResNeXtMetalhead(depth::Int) @argcheck depth in (50, 101, 152) model = FromFluxAdaptor()(Metalhead.ResNeXt(depth).layers) - return maybe_initialize_model(Symbol(:resnext, depth), model; kwargs...) + return Symbol(:resnext, depth), model end -function Vision.GoogLeNetMetalhead(; kwargs...) +function Vision.GoogLeNetMetalhead() model = FromFluxAdaptor()(Metalhead.GoogLeNet().layers) - return maybe_initialize_model(:googlenet, model; kwargs...) + return :googlenet, model end -function Vision.DenseNetMetalhead(depth::Int; kwargs...) +function Vision.DenseNetMetalhead(depth::Int) @argcheck depth in (121, 161, 169, 201) model = FromFluxAdaptor()(Metalhead.DenseNet(depth).layers) - return maybe_initialize_model(Symbol(:densenet, depth), model; kwargs...) + return Symbol(:densenet, depth), model end -function Vision.MobileNetMetalhead(name::Symbol; kwargs...) +function Vision.MobileNetMetalhead(name::Symbol) @argcheck name in (:v1, :v2, :v3_small, :v3_large) model = if name == :v1 FromFluxAdaptor()(Metalhead.MobileNetv1().layers) @@ -50,13 +48,13 @@ function Vision.MobileNetMetalhead(name::Symbol; kwargs...) elseif name == :v3_large FromFluxAdaptor()(Metalhead.MobileNetv3(:large).layers) end - return maybe_initialize_model(Symbol(:mobilenet, "_", name), model; kwargs...) + return Symbol(:mobilenet_, name), model end -function Vision.ConvMixerMetalhead(name::Symbol; kwargs...) +function Vision.ConvMixerMetalhead(name::Symbol) @argcheck name in (:base, :large, :small) model = FromFluxAdaptor()(Metalhead.ConvMixer(name).layers) - return maybe_initialize_model(Symbol(:convmixer, "_", name), model; kwargs...) + return Symbol(:convmixer_, name), model end end diff --git a/src/basis.jl b/src/basis.jl index f9682bb..7311c54 100644 --- a/src/basis.jl +++ b/src/basis.jl @@ -1,7 +1,7 @@ module Basis using ArgCheck: @argcheck -using ChainRulesCore: ChainRulesCore, NoTangent +using ChainRulesCore: ChainRulesCore using Compat: @compat using ConcreteStructs: @concrete using Markdown: @doc_str @@ -11,6 +11,7 @@ using MLDataDevices: get_device, CPUDevice using ..Utils: unsqueeze1 const CRC = ChainRulesCore +const ∂∅ = CRC.NoTangent() # The rrules in this file are hardcoded to be used exclusively with GeneralBasisFunction @concrete struct GeneralBasisFunction{name} @@ -125,10 +126,8 @@ function CRC.rrule(::typeof(Broadcast.broadcasted), ::typeof(fourier), i, x) y = @. ifelse(iseven(i), c, s) ∇fourier = let s = s, c = c, i = i - Δ -> begin - return (NoTangent(), NoTangent(), NoTangent(), - dropdims(sum((i / 2) .* ifelse.(iseven.(i), -s, c) .* Δ; dims=1); dims=1)) - end + Δ -> (∂∅, ∂∅, ∂∅, + dropdims(sum((i / 2) .* ifelse.(iseven.(i), -s, c) .* Δ; dims=1); dims=1)) end return y, ∇fourier @@ -187,10 +186,7 @@ function CRC.rrule(::typeof(Broadcast.broadcasted), ::typeof(polynomial), i, x) y_m1 = x .^ (i .- 2) y = y_m1 .* x ∇polynomial = let y_m1 = y_m1, i = i - Δ -> begin - return (NoTangent(), NoTangent(), NoTangent(), - dropdims(sum((i .- 1) .* y_m1 .* Δ; dims=1); dims=1)) - end + Δ -> (∂∅, ∂∅, ∂∅, dropdims(sum((i .- 1) .* y_m1 .* Δ; dims=1); dims=1)) end return y, ∇polynomial end diff --git a/src/initialize.jl b/src/initialize.jl index c9d8201..8cd919c 100644 --- a/src/initialize.jl +++ b/src/initialize.jl @@ -20,37 +20,6 @@ function get_pretrained_weights_path(name::String) end end -function initialize_model( - name::Symbol, model; pretrained::Bool=false, rng=nothing, seed=0, kwargs...) - if pretrained - path = get_pretrained_weights_path(name) - ps = load_using_jld2(joinpath(path, "$name.jld2"), "parameters") - st = load_using_jld2(joinpath(path, "$name.jld2"), "states") - return ps, st - end - if rng === nothing - rng = Random.default_rng() - Random.seed!(rng, seed) - end - return LuxCore.setup(rng, model) -end - -function maybe_initialize_model(name::Symbol, model; pretrained=false, - initialized::Union{Val, Bool}=Val(true), kwargs...) - @argcheck !pretrained || unwrap_val(initialized) - unwrap_val(initialized) || return model - ps, st = initialize_model(name, model; pretrained, kwargs...) - return model, ps, st -end - -const INITIALIZE_KWARGS = """ - * `pretrained::Bool=false`: If `true`, returns a pretrained model. - * `rng::Union{Nothing, AbstractRNG}=nothing`: Random number generator. - * `seed::Int=0`: Random seed. - * `initialized::Val{Bool}=Val(true)`: If `Val(true)`, returns - `(model, parameters, states)`, otherwise just `model`. -""" - function load_using_jld2(args...; kwargs...) if !is_extension_loaded(Val(:JLD2)) error("`JLD2.jl` is not loaded. Please load it before trying to load pretrained \ diff --git a/src/layers/Layers.jl b/src/layers/Layers.jl index e7f1351..fe35f04 100644 --- a/src/layers/Layers.jl +++ b/src/layers/Layers.jl @@ -17,7 +17,7 @@ using NNlib: NNlib using WeightInitializers: zeros32, randn32 using ..Utils: DataTransferBarrier, fast_chunk, should_type_assert, mapreduce_stack, - unwrap_val, safe_kron, is_extension_loaded + unwrap_val, safe_kron, is_extension_loaded, flatten_spatial const CRC = ChainRulesCore @@ -40,7 +40,7 @@ include("tensor_product.jl") @compat(public, (ClassTokens, ConvBatchNormActivation, ConvNormActivation, DynamicExpressionsLayer, - HamiltonianNN, MultiHeadSelfAttention, MLP, PeriodicEmbedding, SplineLayer, - TensorProductLayer, ViPosEmbedding, VisionTransformerEncoder)) + HamiltonianNN, MultiHeadSelfAttention, MLP, PatchEmbedding, PeriodicEmbedding, + SplineLayer, TensorProductLayer, ViPosEmbedding, VisionTransformerEncoder)) end diff --git a/src/layers/embeddings.jl b/src/layers/embeddings.jl index 9feafc9..a97601c 100644 --- a/src/layers/embeddings.jl +++ b/src/layers/embeddings.jl @@ -114,3 +114,38 @@ end function Base.show(io::IO, ::MIME"text/plain", p::PeriodicEmbedding) return print(io, "PeriodicEmbedding(", p.idxs, ", ", p.periods, ")") end + +@concrete struct PatchEmbedding <: AbstractLuxWrapperLayer{:model} + model <: Lux.Chain +end + +""" + PatchEmbedding(image_size, patch_size, in_channels, embed_planes; + norm_layer=Returns(Lux.NoOpLayer()), flatten=true) + +Constructs a patch embedding layer with the given image size, patch size, input channels, +and embedding planes. The patch size must be a divisor of the image size. + +## Arguments + + - `image_size`: image size as a tuple + - `patch_size`: patch size as a tuple + - `in_channels`: number of input channels + - `embed_planes`: number of embedding planes + +## Keyword Arguments + + - `norm_layer`: Takes the embedding planes as input and returns a layer that normalizes + the embedding planes. Defaults to no normalization. + - `flatten`: set to `true` to flatten the output of the convolutional layer +""" +function PatchEmbedding(image_size::Dims{N}, patch_size::Dims{N}, in_channels::Int, + embed_planes::Int; norm_layer=Returns(Lux.NoOpLayer()), flatten::Bool=true) where {N} + foreach(zip(image_size, patch_size)) do (i, p) + @argcheck i % p==0 "Image size ($i) must be divisible by patch size ($p)" + end + + return PatchEmbedding(Lux.Chain( + Lux.Conv(patch_size, in_channels => embed_planes; stride=patch_size), + ifelse(flatten, flatten_spatial, identity), norm_layer(embed_planes))) +end diff --git a/src/vision/Vision.jl b/src/vision/Vision.jl index 15f3004..3f22f50 100644 --- a/src/vision/Vision.jl +++ b/src/vision/Vision.jl @@ -3,16 +3,30 @@ module Vision using ArgCheck: @argcheck using Compat: @compat using ConcreteStructs: @concrete -using Random: Random +using Random: Random, AbstractRNG using Lux: Lux -using LuxCore: LuxCore, AbstractLuxLayer +using LuxCore: LuxCore, AbstractLuxLayer, AbstractLuxWrapperLayer using NNlib: relu -using ..InitializeModels: maybe_initialize_model, INITIALIZE_KWARGS -using ..Layers: Layers, ConvBatchNormActivation, ClassTokens, ViPosEmbedding, - VisionTransformerEncoder -using ..Utils: flatten_spatial, second_dim_mean, is_extension_loaded +using ..InitializeModels: InitializeModels +using ..Layers: Layers, ConvBatchNormActivation, ClassTokens, PatchEmbedding, + ViPosEmbedding, VisionTransformerEncoder +using ..Utils: second_dim_mean, is_extension_loaded + +abstract type AbstractLuxVisionLayer <: AbstractLuxWrapperLayer{:layer} end + +for op in (:states, :parameters) + fname = Symbol(:initial, op) + @eval function LuxCore.$(fname)(rng::AbstractRNG, model::AbstractLuxVisionLayer) + if hasfield(typeof(model), :pretrained) && model.pretrained + path = InitializeModels.get_pretrained_weights_path(model.pretrained_name) + return InitializeModels.load_using_jld2( + joinpath(path, "$(model.pretrained_name).jld2"), $(string(op))) + end + return LuxCore.$(fname)(rng, model.layer) + end +end include("extensions.jl") include("vit.jl") diff --git a/src/vision/extensions.jl b/src/vision/extensions.jl index 62b541e..bff8c2d 100644 --- a/src/vision/extensions.jl +++ b/src/vision/extensions.jl @@ -5,7 +5,8 @@ Create an AlexNet model [krizhevsky2012imagenet](@citep). ## Keyword Arguments -$(INITIALIZE_KWARGS) + - `pretrained::Bool=false`: If `true`, loads pretrained weights when `LuxCore.setup` is + called. """ function AlexNet end @@ -16,11 +17,12 @@ Create a ResNet model [he2016deep](@citep). ## Arguments - * `depth::Int`: The depth of the ResNet model. Must be one of 18, 34, 50, 101, or 152. + - `depth::Int`: The depth of the ResNet model. Must be one of 18, 34, 50, 101, or 152. ## Keyword Arguments -$(INITIALIZE_KWARGS) + - `pretrained::Bool=false`: If `true`, loads pretrained weights when `LuxCore.setup` is + called. """ function ResNet end @@ -31,11 +33,12 @@ Create a ResNeXt model [xie2017aggregated](@citep). ## Arguments - * `depth::Int`: The depth of the ResNeXt model. Must be one of 50, 101, or 152. + - `depth::Int`: The depth of the ResNeXt model. Must be one of 50, 101, or 152. ## Keyword Arguments -$(INITIALIZE_KWARGS) + - `pretrained::Bool=false`: If `true`, loads pretrained weights when `LuxCore.setup` is + called. """ function ResNeXt end @@ -46,7 +49,8 @@ Create a GoogLeNet model [szegedy2015going](@citep). ## Keyword Arguments -$(INITIALIZE_KWARGS) + - `pretrained::Bool=false`: If `true`, loads pretrained weights when `LuxCore.setup` is + called. """ function GoogLeNet end @@ -57,11 +61,12 @@ Create a DenseNet model [huang2017densely](@citep). ## Arguments - * `depth::Int`: The depth of the DenseNet model. Must be one of 121, 161, 169, or 201. + - `depth::Int`: The depth of the DenseNet model. Must be one of 121, 161, 169, or 201. ## Keyword Arguments -$(INITIALIZE_KWARGS) + - `pretrained::Bool=false`: If `true`, loads pretrained weights when `LuxCore.setup` is + called. """ function DenseNet end @@ -73,12 +78,13 @@ Create a MobileNet model ## Arguments - * `name::Symbol`: The name of the MobileNet model. Must be one of `:v1`, `:v2`, + - `name::Symbol`: The name of the MobileNet model. Must be one of `:v1`, `:v2`, `:v3_small`, or `:v3_large`. ## Keyword Arguments -$(INITIALIZE_KWARGS) + - `pretrained::Bool=false`: If `true`, loads pretrained weights when `LuxCore.setup` is + called. """ function MobileNet end @@ -89,25 +95,33 @@ Create a ConvMixer model [trockman2022patches](@citep). ## Arguments - * `name::Symbol`: The name of the ConvMixer model. Must be one of `:base`, `:small`, or + - `name::Symbol`: The name of the ConvMixer model. Must be one of `:base`, `:small`, or `:large`. ## Keyword Arguments -$(INITIALIZE_KWARGS) + - `pretrained::Bool=false`: If `true`, loads pretrained weights when `LuxCore.setup` is + called. """ function ConvMixer end +@concrete struct MetalheadWrapperLayer <: AbstractLuxVisionLayer + layer + pretrained_name::Symbol + pretrained::Bool +end + for f in [:AlexNet, :ResNet, :ResNeXt, :GoogLeNet, :DenseNet, :MobileNet, :ConvMixer] f_metalhead = Symbol(f, :Metalhead) @eval begin function $(f_metalhead) end - function $(f)(args...; kwargs...) + function $(f)(args...; pretrained::Bool=false) if !is_extension_loaded(Val(:Metalhead)) error("`Metalhead.jl` is not loaded. Please load `Metalhead.jl` to use \ this function.") end - $(f_metalhead)(args...; kwargs...) + name, model = $(f_metalhead)(args...) + return MetalheadWrapperLayer(model, name, pretrained) end end end diff --git a/src/vision/vgg.jl b/src/vision/vgg.jl index a4c1eb9..623ae8b 100644 --- a/src/vision/vgg.jl +++ b/src/vision/vgg.jl @@ -1,4 +1,8 @@ -function vgg_convolutional_layers(config, batchnorm, inchannels) +@concrete struct VGGFeatureExtractor <: AbstractLuxWrapperLayer{:model} + model <: Lux.Chain +end + +function VGGFeatureExtractor(config, batchnorm, inchannels) layers = Vector{AbstractLuxLayer}(undef, length(config) * 2) input_filters = inchannels for (i, (chs, depth)) in enumerate(config) @@ -8,13 +12,24 @@ function vgg_convolutional_layers(config, batchnorm, inchannels) layers[2i] = Lux.MaxPool((2, 2)) input_filters = chs end - return Lux.Chain(layers...) + return VGGFeatureExtractor(Lux.Chain(layers...)) +end + +@concrete struct VGGClassifier <: AbstractLuxWrapperLayer{:model} + model <: Lux.Chain end -function vgg_classifier_layers(imsize, nclasses, fcsize, dropout) - return Lux.Chain(Lux.FlattenLayer(), Lux.Dense(Int(prod(imsize)) => fcsize, relu), +function VGGClassifier(imsize, nclasses, fcsize, dropout) + return VGGClassifier(Lux.Chain( + Lux.FlattenLayer(), Lux.Dense(Int(prod(imsize)) => fcsize, relu), Lux.Dropout(dropout), Lux.Dense(fcsize => fcsize, relu), - Lux.Dropout(dropout), Lux.Dense(fcsize => nclasses)) + Lux.Dropout(dropout), Lux.Dense(fcsize => nclasses))) +end + +@concrete struct VGG <: AbstractLuxVisionLayer + layer + pretrained_name::Symbol + pretrained::Bool end """ @@ -33,11 +48,11 @@ Create a VGG model [simonyan2014very](@citep). - `dropout`: dropout level between fully connected layers """ function VGG(imsize; config, inchannels, batchnorm=false, nclasses, fcsize, dropout) - feature_extractor = vgg_convolutional_layers(config, batchnorm, inchannels) - nilarray = Lux.NilSizePropagation.NilArray(imsize..., inchannels, 2) + feature_extractor = VGGFeatureExtractor(config, batchnorm, inchannels) + nilarray = Lux.NilSizePropagation.NilArray((imsize..., inchannels, 2)) outsize = LuxCore.outputsize(feature_extractor, nilarray, Random.default_rng()) - classifier = vgg_classifier_layers(outsize, nclasses, fcsize, dropout) - return Lux.Chain(feature_extractor, classifier) + classifier = VGGClassifier(outsize, nclasses, fcsize, dropout) + return Lux.Chain(; feature_extractor, classifier) end const VGG_CONFIG = Dict( @@ -48,22 +63,23 @@ const VGG_CONFIG = Dict( ) """ - VGG(depth::Int; batchnorm=false, kwargs...) + VGG(depth::Int; batchnorm::Bool=false, pretrained::Bool=false) Create a VGG model [simonyan2014very](@citep) with ImageNet Configuration. ## Arguments - * `depth::Int`: the depth of the VGG model. Choices: {`11`, `13`, `16`, `19`}. + - `depth::Int`: the depth of the VGG model. Choices: {`11`, `13`, `16`, `19`}. ## Keyword Arguments - * `batchnorm = false`: set to `true` to use batch normalization after each convolution. -$(INITIALIZE_KWARGS) + - `batchnorm = false`: set to `true` to use batch normalization after each convolution. + - `pretrained::Bool=false`: If `true`, loads pretrained weights when `LuxCore.setup` is + called. """ -function VGG(depth::Int; batchnorm::Bool=false, kwargs...) +function VGG(depth::Int; batchnorm::Bool=false, pretrained::Bool=false) name = Symbol(:vgg, depth, ifelse(batchnorm, "_bn", "")) config, inchannels, nclasses, fcsize = VGG_CONFIG[depth], 3, 1000, 4096 model = VGG((224, 224); config, inchannels, batchnorm, nclasses, fcsize, dropout=0.5f0) - return maybe_initialize_model(name, model; kwargs...) + return VGG(model, name, pretrained) end diff --git a/src/vision/vit.jl b/src/vision/vit.jl index 5d03bfa..16f3ab8 100644 --- a/src/vision/vit.jl +++ b/src/vision/vit.jl @@ -1,28 +1,19 @@ -function __patch_embedding( - imsize::Dims{2}=(224, 224); in_channels=3, patch_size::Dims{2}=(16, 16), - embed_planes=768, norm_layer=Returns(Lux.NoOpLayer()), flatten=true) - im_width, im_height = imsize - patch_width, patch_height = patch_size - - @argcheck (im_width % patch_width == 0) && (im_height % patch_height == 0) - - return Lux.Chain(Lux.Conv(patch_size, in_channels => embed_planes; stride=patch_size), - ifelse(flatten, flatten_spatial, identity), norm_layer(embed_planes)) +@concrete struct VisionTransformer <: AbstractLuxVisionLayer + layer + pretrained_name::Symbol + pretrained::Bool end -# ViT Implementation function VisionTransformer(; imsize::Dims{2}=(256, 256), in_channels::Int=3, patch_size::Dims{2}=(16, 16), embed_planes::Int=768, depth::Int=6, number_heads=16, mlp_ratio=4.0f0, dropout_rate=0.1f0, embedding_dropout_rate=0.1f0, - pool::Symbol=:class, num_classes::Int=1000, kwargs...) + pool::Symbol=:class, num_classes::Int=1000) @argcheck pool in (:class, :mean) - number_patches = prod(imsize .÷ patch_size) - return Lux.Chain( - Lux.Chain(__patch_embedding(imsize; in_channels, patch_size, embed_planes), + Lux.Chain(PatchEmbedding(imsize, patch_size, in_channels, embed_planes), ClassTokens(embed_planes), - ViPosEmbedding(embed_planes, number_patches + 1), + ViPosEmbedding(embed_planes, prod(imsize .÷ patch_size) + 1), Lux.Dropout(embedding_dropout_rate), VisionTransformerEncoder( embed_planes, depth, number_heads; mlp_ratio, dropout_rate), @@ -44,23 +35,24 @@ const VIT_CONFIGS = Dict( #! format: on """ - VisionTransformer(name::Symbol; kwargs...) + VisionTransformer(name::Symbol; pretrained=false) Creates a Vision Transformer model with the specified configuration. ## Arguments - `name::Symbol`: name of the Vision Transformer model to create. The following models are - available: + available -- `:tiny`, `:small`, `:base`, `:large`, `:huge`, `:giant`, `:gigantic`. ## Keyword Arguments -$(INITIALIZE_KWARGS) + - `pretrained::Bool=false`: If `true`, loads pretrained weights when `LuxCore.setup` is + called. """ -function VisionTransformer(name::Symbol; kwargs...) +function VisionTransformer(name::Symbol; pretrained=false, kwargs...) @argcheck name in keys(VIT_CONFIGS) - model = VisionTransformer(; VIT_CONFIGS[name]..., kwargs...) - return maybe_initialize_model(name, model; kwargs...) + return VisionTransformer( + VisionTransformer(; VIT_CONFIGS[name]..., kwargs...), name, pretrained) end const ViT = VisionTransformer diff --git a/test/Project.toml b/test/Project.toml index 030c99b..a724ae5 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -15,6 +15,7 @@ LuxLib = "82251201-b29d-42c6-8e01-566dec8acb11" LuxTestUtils = "ac9de150-d08f-4546-94fb-7472b5760531" MLDataDevices = "7e8f7934-dd98-4c1a-8fe8-92b47a384d40" Metalhead = "dbeba491-748d-5e0e-a39e-b530a07fa0cc" +NNlib = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" ReTestItems = "817f1d60-ba6b-4fd5-9520-3cf149f6a823" @@ -40,6 +41,7 @@ LuxLib = "1" LuxTestUtils = "1.1.2" MLDataDevices = "1" Metalhead = "0.9" +NNlib = "0.9.21" Pkg = "1.10" Random = "1.10" ReTestItems = "1.24.0" diff --git a/test/layer_tests.jl b/test/layer_tests.jl index 476b08c..bbfc98d 100644 --- a/test/layer_tests.jl +++ b/test/layer_tests.jl @@ -1,6 +1,8 @@ # Only tests that are not run via `vision` or other higher-level test suites are # included in this snippet. @testitem "MLP" setup=[SharedTestSetup] tags=[:layers] begin + using NNlib + @testset "$(mode)" for (mode, aType, dev, ongpu) in MODES @testset "$(act)" for act in (tanh, NNlib.gelu) @testset "$(nType)" for nType in (BatchNorm, GroupNorm, nothing) From b7d313f30d2feac29ac5ffe4b647190dbfca39ec Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Mon, 9 Sep 2024 13:21:44 -0400 Subject: [PATCH 09/21] fix: missing NNlib import --- src/layers/dynamic_expressions.jl | 2 +- test/layer_tests.jl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/layers/dynamic_expressions.jl b/src/layers/dynamic_expressions.jl index b0722fb..f4feedb 100644 --- a/src/layers/dynamic_expressions.jl +++ b/src/layers/dynamic_expressions.jl @@ -68,7 +68,7 @@ true ``` """ @concrete struct DynamicExpressionsLayer <: AbstractLuxWrapperLayer{:chain} - chain <: Lux.Chain + chain end @concrete struct InternalDynamicExpressionWrapper <: AbstractLuxLayer diff --git a/test/layer_tests.jl b/test/layer_tests.jl index bbfc98d..ed5e9c2 100644 --- a/test/layer_tests.jl +++ b/test/layer_tests.jl @@ -30,7 +30,7 @@ end @testitem "Hamiltonian Neural Network" setup=[SharedTestSetup] tags=[:layers] begin - using ComponentArrays, ForwardDiff, Zygote, MLDataDevices + using ComponentArrays, ForwardDiff, Zygote, MLDataDevices, NNlib _remove_nothing(xs) = map(x -> x === nothing ? 0 : x, xs) From 1e1def7d40bad050944b567e0e4f4ec7f17d2379 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Mon, 9 Sep 2024 13:47:00 -0400 Subject: [PATCH 10/21] fix: update tests to the new API --- ext/BoltzDynamicExpressionsExt.jl | 2 +- src/initialize.jl | 2 +- test/vision_tests.jl | 54 +++++++++++++++---------------- 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/ext/BoltzDynamicExpressionsExt.jl b/ext/BoltzDynamicExpressionsExt.jl index 8ca9b3f..d28f65e 100644 --- a/ext/BoltzDynamicExpressionsExt.jl +++ b/ext/BoltzDynamicExpressionsExt.jl @@ -65,7 +65,7 @@ function Layers.DynamicExpressionsLayer(operator_enum::OperatorEnum, expressions i -> Layers.InternalDynamicExpressionWrapper( operator_enum, expressions[i], eval_options), length(expressions))...), - WrappedFunction{:direct_call}(Lux.Utils.stack1)) + WrappedFunction(Lux.Utils.stack1)) end return Layers.DynamicExpressionsLayer(internal_layer) end diff --git a/src/initialize.jl b/src/initialize.jl index 8cd919c..16da6ff 100644 --- a/src/initialize.jl +++ b/src/initialize.jl @@ -7,7 +7,7 @@ using Random: Random using LuxCore: LuxCore -using ..Utils: is_extension_loaded, unwrap_val +using ..Utils: is_extension_loaded get_pretrained_weights_path(name::Symbol) = get_pretrained_weights_path(string(name)) function get_pretrained_weights_path(name::String) diff --git a/test/vision_tests.jl b/test/vision_tests.jl index f5d1595..4188f29 100644 --- a/test/vision_tests.jl +++ b/test/vision_tests.jl @@ -1,9 +1,9 @@ @testitem "AlexNet" setup=[SharedTestSetup] tags=[:vision] begin for (mode, aType, dev, ongpu) in MODES @testset "pretrained: $(pretrained)" for pretrained in [true, false] - model, ps, st = Vision.AlexNet(; pretrained) - ps = ps |> dev - st = Lux.testmode(st) |> dev + model = Vision.AlexNet(; pretrained) + ps, st = Lux.setup(Random.default_rng(), model) |> dev + st = Lux.testmode(st) img = randn(Float32, 224, 224, 3, 2) |> aType @jet model(img, ps, st) @@ -16,9 +16,9 @@ end @testitem "ConvMixer" setup=[SharedTestSetup] tags=[:vision] begin for (mode, aType, dev, ongpu) in MODES, name in [:small, :base, :large] - model, ps, st = Vision.ConvMixer(name; pretrained=false) - ps = ps |> dev - st = Lux.testmode(st) |> dev + model = Vision.ConvMixer(name; pretrained=false) + ps, st = Lux.setup(Random.default_rng(), model) |> dev + st = Lux.testmode(st) img = randn(Float32, 256, 256, 3, 2) |> aType @jet model(img, ps, st) @@ -30,9 +30,9 @@ end @testitem "GoogLeNet" setup=[SharedTestSetup] tags=[:vision] begin for (mode, aType, dev, ongpu) in MODES - model, ps, st = Vision.GoogLeNet(; pretrained=false) - ps = ps |> dev - st = Lux.testmode(st) |> dev + model = Vision.GoogLeNet(; pretrained=false) + ps, st = Lux.setup(Random.default_rng(), model) |> dev + st = Lux.testmode(st) img = randn(Float32, 224, 224, 3, 2) |> aType @jet model(img, ps, st) @@ -44,9 +44,9 @@ end @testitem "MobileNet" setup=[SharedTestSetup] tags=[:vision] begin for (mode, aType, dev, ongpu) in MODES, name in [:v1, :v2, :v3_small, :v3_large] - model, ps, st = Vision.MobileNet(name; pretrained=false) - ps = ps |> dev - st = Lux.testmode(st) |> dev + model = Vision.MobileNet(name; pretrained=false) + ps, st = Lux.setup(Random.default_rng(), model) |> dev + st = Lux.testmode(st) img = randn(Float32, 224, 224, 3, 2) |> aType @jet model(img, ps, st) @@ -58,9 +58,9 @@ end @testitem "ResNet" setup=[SharedTestSetup] tags=[:vision] begin for (mode, aType, dev, ongpu) in MODES, depth in [18, 34, 50, 101, 152] - model, ps, st = Vision.ResNet(depth; pretrained=false) - ps = ps |> dev - st = Lux.testmode(st) |> dev + model = Vision.ResNet(depth; pretrained=false) + ps, st = Lux.setup(Random.default_rng(), model) |> dev + st = Lux.testmode(st) img = randn(Float32, 224, 224, 3, 2) |> aType @jet model(img, ps, st) @@ -72,9 +72,9 @@ end @testitem "ResNeXt" setup=[SharedTestSetup] tags=[:vision] begin for (mode, aType, dev, ongpu) in MODES, depth in [50, 101, 152] - model, ps, st = Vision.ResNeXt(depth; pretrained=false) - ps = ps |> dev - st = Lux.testmode(st) |> dev + model = Vision.ResNeXt(depth; pretrained=false) + ps, st = Lux.setup(Random.default_rng(), model) |> dev + st = Lux.testmode(st) img = randn(Float32, 224, 224, 3, 2) |> aType @jet model(img, ps, st) @@ -90,9 +90,9 @@ end false, true], batchnorm in [false, true] - model, ps, st = Vision.VGG(depth; batchnorm, pretrained) - ps = ps |> dev - st = Lux.testmode(st) |> dev + model = Vision.VGG(depth; batchnorm, pretrained) + ps, st = Lux.setup(Random.default_rng(), model) |> dev + st = Lux.testmode(st) img = randn(Float32, 224, 224, 3, 2) |> aType @jet model(img, ps, st) @@ -106,17 +106,17 @@ end @testitem "VisionTransformer" setup=[SharedTestSetup] tags=[:vision] begin for (mode, aType, dev, ongpu) in MODES, name in [:tiny, :small, :base] # :large, :huge, :giant, :gigantic --> too large for CI - model, ps, st = Vision.VisionTransformer(name; pretrained=false) - ps = ps |> dev - st = Lux.testmode(st) |> dev + model = Vision.VisionTransformer(name; pretrained=false) + ps, st = Lux.setup(Random.default_rng(), model) |> dev + st = Lux.testmode(st) img = randn(Float32, 256, 256, 3, 2) |> aType @jet model(img, ps, st) @test size(first(model(img, ps, st))) == (1000, 2) - model, ps, st = Vision.VisionTransformer(name; pretrained=false) - ps = ps |> dev - st = Lux.testmode(st) |> dev + model = Vision.VisionTransformer(name; pretrained=false) + ps, st = Lux.setup(Random.default_rng(), model) |> dev + st = Lux.testmode(st) img = randn(Float32, 256, 256, 3, 2) |> aType @jet model(img, ps, st) From 99b3b8e21007d90cc49bed1547c2199963f9a1fc Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Mon, 9 Sep 2024 14:39:08 -0400 Subject: [PATCH 11/21] fix: update symbolic optimal control tutorial --- examples/SymbolicOptimalControl/Project.toml | 6 +++--- examples/SymbolicOptimalControl/main.jl | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/SymbolicOptimalControl/Project.toml b/examples/SymbolicOptimalControl/Project.toml index f5e3c41..dfb351c 100644 --- a/examples/SymbolicOptimalControl/Project.toml +++ b/examples/SymbolicOptimalControl/Project.toml @@ -11,7 +11,7 @@ MLJ = "add582a8-e3ab-11e8-2d5e-e98b27df1bc7" Optimization = "7f7a1694-90dd-40f0-9382-eb1efda571ba" OptimizationOptimJL = "36348300-93cb-4f02-beb5-3c3902f8871e" OptimizationOptimisers = "42dfb2eb-d2b4-4451-abcd-913932933ac1" -OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" +OrdinaryDiffEqVerner = "79d7bb75-1356-48c1-b8c0-6832512096c2" Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" SciMLSensitivity = "1ed8b502-d754-442c-8d5d-10ac956f44a1" @@ -31,8 +31,8 @@ MLJ = "0.20.3" Optimization = "3.24.3" OptimizationOptimJL = "0.2.3, 0.3" OptimizationOptimisers = "0.2.1" -OrdinaryDiffEq = "6.74.1" +OrdinaryDiffEqVerner = "1" SciMLSensitivity = "7.57" -Statistics = "1.11" +Statistics = "1.10" SymbolicRegression = "0.24.1" SymbolicUtils = "1.5.1, 2, 3" diff --git a/examples/SymbolicOptimalControl/main.jl b/examples/SymbolicOptimalControl/main.jl index 6a03a0f..da5e972 100644 --- a/examples/SymbolicOptimalControl/main.jl +++ b/examples/SymbolicOptimalControl/main.jl @@ -32,7 +32,7 @@ # ## Package Imports -using Lux, Boltz, ComponentArrays, OrdinaryDiffEq, Optimization, OptimizationOptimJL, +using Lux, Boltz, ComponentArrays, OrdinaryDiffEqVerner, Optimization, OptimizationOptimJL, OptimizationOptimisers, SciMLSensitivity, Statistics, Printf, Random using DynamicExpressions, SymbolicRegression, MLJ, SymbolicUtils, Latexify using CairoMakie @@ -96,7 +96,7 @@ ude_test = construct_ude(mlp, Vern9(); abstol=1e-10, reltol=1e-10); function train_model_1(ude, rng, ts_) ps, st = Lux.setup(rng, ude) ps = ComponentArray{Float64}(ps) - stateful_ude = StatefulLuxLayer(ude, st) + stateful_ude = StatefulLuxLayer{true}(ude, nothing, st) ts = collect(ts_) @@ -147,7 +147,7 @@ function train_model_2(stateful_ude::StatefulLuxLayer, ts_) optprob = OptimizationProblem(optf, stateful_ude.ps) res2 = solve(optprob, LBFGS(); callback, maxiters=100) - return StatefulLuxLayer(stateful_ude.model, res2.u, stateful_ude.st) + return StatefulLuxLayer{true}(stateful_ude.model, res2.u, stateful_ude.st) end trained_ude = train_model_2(trained_ude, 0.0:0.01:8.0) From 49c5998e423b9b4fdd0eb10e478bd9e395ca9bb7 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Wed, 11 Sep 2024 14:07:14 -0400 Subject: [PATCH 12/21] fix: updated alexnet weights --- Artifacts.toml | 6 +++--- Project.toml | 2 ++ docs/src/api/vision.md | 2 +- ext/BoltzMetalheadExt.jl | 5 ----- src/initialize.jl | 19 +++++++++++++++++++ src/vision/Vision.jl | 5 ++++- src/vision/alexnet.jl | 40 ++++++++++++++++++++++++++++++++++++++++ src/vision/extensions.jl | 14 +------------- 8 files changed, 70 insertions(+), 23 deletions(-) create mode 100644 src/vision/alexnet.jl diff --git a/Artifacts.toml b/Artifacts.toml index c583be7..6977458 100644 --- a/Artifacts.toml +++ b/Artifacts.toml @@ -1,10 +1,10 @@ [alexnet] -git-tree-sha1 = "8904a6756649aa4cd264328430b829dafde95645" +git-tree-sha1 = "f1739363d54a358cae904133699a93eca7b7a028" lazy = true [[alexnet.download]] - sha256 = "e20107404aba1c2c0ed3fad4314033a2fa600cdc0c55d03bc1bfe4f8e5031105" - url = "https://github.com/LuxDL/Lux.jl/releases/download/weights/alexnet.tar.gz" + sha256 = "feb3e1600179ba00b72a68759c7f3b12f400f6d59b28ac72b48614cbafa187d8" + url = "https://huggingface.co/LuxDL/alexnet/resolve/2c48051ecb131d38f2209470cdda70a343289db1/alexnet.tar.gz" # [resnet101] # git-tree-sha1 = "6c9143d40950726405b88db0cc021fa1dcbc0896" diff --git a/Project.toml b/Project.toml index 2076058..d359023 100644 --- a/Project.toml +++ b/Project.toml @@ -11,6 +11,7 @@ ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" Compat = "34da2185-b29b-5c13-b0c7-acf172513d20" ConcreteStructs = "2569d6c7-a4a2-43d3-a901-331e8e4be471" ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" +Functors = "d9f16b24-f501-4c13-a1f2-28368ffc5196" GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" LazyArtifacts = "4af54fe1-eca0-43a8-85a7-787d91b784e3" Lux = "b2108857-7c20-44ae-9111-449ecde12c47" @@ -51,6 +52,7 @@ ConcreteStructs = "0.2.3" DataInterpolations = "< 5.3" DynamicExpressions = "0.16, 0.17, 0.18, 0.19" ForwardDiff = "0.10.36" +Functors = "0.4.12" GPUArraysCore = "0.1.6" JLD2 = "0.4.48, 0.5" LazyArtifacts = "1.10" diff --git a/docs/src/api/vision.md b/docs/src/api/vision.md index 2bdb668..c34ed1d 100644 --- a/docs/src/api/vision.md +++ b/docs/src/api/vision.md @@ -3,6 +3,7 @@ ## Native Lux Models ```@docs +Vision.AlexNet Vision.VGG Vision.VisionTransformer ``` @@ -14,7 +15,6 @@ Vision.VisionTransformer You need to load `Metalhead` before using these models. ```@docs -Vision.AlexNet Vision.ConvMixer Vision.DenseNet Vision.GoogLeNet diff --git a/ext/BoltzMetalheadExt.jl b/ext/BoltzMetalheadExt.jl index 5f92e3b..4e28098 100644 --- a/ext/BoltzMetalheadExt.jl +++ b/ext/BoltzMetalheadExt.jl @@ -9,11 +9,6 @@ using Boltz: Boltz, Utils, Vision Utils.is_extension_loaded(::Val{:Metalhead}) = true -function Vision.AlexNetMetalhead() - model = FromFluxAdaptor()(Metalhead.AlexNet().layers) - return :alexnet, model -end - function Vision.ResNetMetalhead(depth::Int) @argcheck depth in (18, 34, 50, 101, 152) model = FromFluxAdaptor()(Metalhead.ResNet(depth).layers) diff --git a/src/initialize.jl b/src/initialize.jl index 16da6ff..c3e05e9 100644 --- a/src/initialize.jl +++ b/src/initialize.jl @@ -2,6 +2,7 @@ module InitializeModels using ArgCheck: @argcheck using Artifacts: Artifacts, @artifact_str +using Functors: fmap using LazyArtifacts: LazyArtifacts using Random: Random @@ -30,4 +31,22 @@ end function load_using_jld2_internal end +struct SerializedRNG end + +function remove_rng_from_structure(x) + return fmap(x) do xᵢ + xᵢ isa Random.AbstractRNG && return SerializedRNG() + return xᵢ + end +end + +loadparameters(x) = x + +function loadstates(x) + return fmap(x) do xᵢ + xᵢ isa SerializedRNG && return Random.default_rng() + return xᵢ + end +end + end diff --git a/src/vision/Vision.jl b/src/vision/Vision.jl index 3f22f50..a1e7c37 100644 --- a/src/vision/Vision.jl +++ b/src/vision/Vision.jl @@ -18,17 +18,20 @@ abstract type AbstractLuxVisionLayer <: AbstractLuxWrapperLayer{:layer} end for op in (:states, :parameters) fname = Symbol(:initial, op) + fname_load = Symbol(:load, op) @eval function LuxCore.$(fname)(rng::AbstractRNG, model::AbstractLuxVisionLayer) if hasfield(typeof(model), :pretrained) && model.pretrained path = InitializeModels.get_pretrained_weights_path(model.pretrained_name) - return InitializeModels.load_using_jld2( + jld2_loaded_obj = InitializeModels.load_using_jld2( joinpath(path, "$(model.pretrained_name).jld2"), $(string(op))) + return InitializeModels.$(fname_load)(jld2_loaded_obj) end return LuxCore.$(fname)(rng, model.layer) end end include("extensions.jl") +include("alexnet.jl") include("vit.jl") include("vgg.jl") diff --git a/src/vision/alexnet.jl b/src/vision/alexnet.jl new file mode 100644 index 0000000..ba002bf --- /dev/null +++ b/src/vision/alexnet.jl @@ -0,0 +1,40 @@ +""" + AlexNet(; kwargs...) + +Create an AlexNet model [krizhevsky2012imagenet](@citep). + +## Keyword Arguments + + - `pretrained::Bool=false`: If `true`, loads pretrained weights when `LuxCore.setup` is + called. +""" +@concrete struct AlexNet <: AbstractLuxVisionLayer + layer + pretrained_name::Symbol + pretrained::Bool +end + +function AlexNet(; pretrained=false) + alexnet = Lux.Chain(; + backbone=Lux.Chain( + Lux.Conv((11, 11), 3 => 64, relu; stride=4, pad=2), + Lux.MaxPool((3, 3); stride=2), + Lux.Conv((5, 5), 64 => 192, relu; pad=2), + Lux.MaxPool((3, 3); stride=2), + Lux.Conv((3, 3), 192 => 384, relu; pad=1), + Lux.Conv((3, 3), 384 => 256, relu; pad=1), + Lux.Conv((3, 3), 256 => 256, relu; pad=1), + Lux.MaxPool((3, 3); stride=2) + ), + classifier=Lux.Chain( + Lux.AdaptiveMeanPool((6, 6)), + Lux.FlattenLayer(), + Lux.Dropout(0.5f0), + Lux.Dense(256 * 6 * 6 => 4096, relu), + Lux.Dropout(0.5f0), + Lux.Dense(4096 => 4096, relu), + Lux.Dense(4096 => 1000) + ) + ) + return AlexNet(alexnet, :alexnet, pretrained) +end diff --git a/src/vision/extensions.jl b/src/vision/extensions.jl index bff8c2d..1acaeed 100644 --- a/src/vision/extensions.jl +++ b/src/vision/extensions.jl @@ -1,15 +1,3 @@ -""" - AlexNet(; kwargs...) - -Create an AlexNet model [krizhevsky2012imagenet](@citep). - -## Keyword Arguments - - - `pretrained::Bool=false`: If `true`, loads pretrained weights when `LuxCore.setup` is - called. -""" -function AlexNet end - """ ResNet(depth::Int; kwargs...) @@ -111,7 +99,7 @@ function ConvMixer end pretrained::Bool end -for f in [:AlexNet, :ResNet, :ResNeXt, :GoogLeNet, :DenseNet, :MobileNet, :ConvMixer] +for f in [:ResNet, :ResNeXt, :GoogLeNet, :DenseNet, :MobileNet, :ConvMixer] f_metalhead = Symbol(f, :Metalhead) @eval begin function $(f_metalhead) end From 6a11d2a39010e011432010ae2d0cc0e603e2401c Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Thu, 12 Sep 2024 15:33:02 -0400 Subject: [PATCH 13/21] fix: ViT recursive issue with nested models --- src/layers/embeddings.jl | 23 +++++++++++++++++------ src/vision/vit.jl | 2 +- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/layers/embeddings.jl b/src/layers/embeddings.jl index a97601c..4633093 100644 --- a/src/layers/embeddings.jl +++ b/src/layers/embeddings.jl @@ -115,10 +115,6 @@ function Base.show(io::IO, ::MIME"text/plain", p::PeriodicEmbedding) return print(io, "PeriodicEmbedding(", p.idxs, ", ", p.periods, ")") end -@concrete struct PatchEmbedding <: AbstractLuxWrapperLayer{:model} - model <: Lux.Chain -end - """ PatchEmbedding(image_size, patch_size, in_channels, embed_planes; norm_layer=Returns(Lux.NoOpLayer()), flatten=true) @@ -139,13 +135,28 @@ and embedding planes. The patch size must be a divisor of the image size. the embedding planes. Defaults to no normalization. - `flatten`: set to `true` to flatten the output of the convolutional layer """ +@concrete struct PatchEmbedding <: AbstractLuxContainerLayer{(:patch, :flatten, :norm)} + patch <: AbstractLuxLayer + flatten <: AbstractLuxLayer + norm <: AbstractLuxLayer +end + +function (pe::PatchEmbedding)(x, ps, st) + y₁, st₁ = pe.patch(x, ps.patch, st.patch) + y₂, st₂ = pe.flatten(y₁, ps.flatten, st.flatten) + y₃, st₃ = pe.norm(y₂, ps.norm, st.norm) + return y₃, (; patch=st₁, flatten=st₂, norm=st₃) +end + function PatchEmbedding(image_size::Dims{N}, patch_size::Dims{N}, in_channels::Int, embed_planes::Int; norm_layer=Returns(Lux.NoOpLayer()), flatten::Bool=true) where {N} foreach(zip(image_size, patch_size)) do (i, p) @argcheck i % p==0 "Image size ($i) must be divisible by patch size ($p)" end - return PatchEmbedding(Lux.Chain( + return PatchEmbedding( Lux.Conv(patch_size, in_channels => embed_planes; stride=patch_size), - ifelse(flatten, flatten_spatial, identity), norm_layer(embed_planes))) + ifelse(flatten, Lux.WrappedFunction(flatten_spatial), Lux.NoOpLayer()), + norm_layer(embed_planes) + ) end diff --git a/src/vision/vit.jl b/src/vision/vit.jl index 16f3ab8..7c5dc7f 100644 --- a/src/vision/vit.jl +++ b/src/vision/vit.jl @@ -19,7 +19,7 @@ function VisionTransformer(; embed_planes, depth, number_heads; mlp_ratio, dropout_rate), Lux.WrappedFunction(ifelse(pool === :class, x -> x[:, 1, :], second_dim_mean))), Lux.Chain(Lux.LayerNorm((embed_planes,); affine=true), - Lux.Dense(embed_planes, num_classes, tanh))) + Lux.Dense(embed_planes, num_classes))) end #! format: off From dc3422fbc3e22311ee93ec4e365d29e533da56bf Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Thu, 12 Sep 2024 22:20:08 -0400 Subject: [PATCH 14/21] feat: add pretrained models from Metalhead --- Artifacts.toml | 40 ---------------------------------------- docs/src/api/vision.md | 6 ++++++ ext/BoltzMetalheadExt.jl | 36 +++++++++++++++++++++--------------- src/vision/extensions.jl | 4 ++-- test/vision_tests.jl | 39 +++++++++++++++++++++------------------ 5 files changed, 50 insertions(+), 75 deletions(-) diff --git a/Artifacts.toml b/Artifacts.toml index 6977458..af797ce 100644 --- a/Artifacts.toml +++ b/Artifacts.toml @@ -6,46 +6,6 @@ lazy = true sha256 = "feb3e1600179ba00b72a68759c7f3b12f400f6d59b28ac72b48614cbafa187d8" url = "https://huggingface.co/LuxDL/alexnet/resolve/2c48051ecb131d38f2209470cdda70a343289db1/alexnet.tar.gz" -# [resnet101] -# git-tree-sha1 = "6c9143d40950726405b88db0cc021fa1dcbc0896" -# lazy = true - -# [[resnet101.download]] -# sha256 = "3840f05b3d996b2b3ea1e8fb6617775fd60ad6b8769402200fdc9c8b8dca246f" -# url = "https://github.com/LuxDL/Lux.jl/releases/download/weights/resnet101.tar.gz" - -# [resnet152] -# git-tree-sha1 = "892915c44de37537aad97da3de8a4458dfa36297" -# lazy = true - -# [[resnet152.download]] -# sha256 = "6033a1ecc46d7f4ed1139067c5f9f5ea0d247656e9abbbe755c4702ec5a636d6" -# url = "https://github.com/LuxDL/Lux.jl/releases/download/weights/resnet152.tar.gz" - -# [resnet18] -# git-tree-sha1 = "1d4a46fee1bb87eeef0ce2c85f63cfe0ff47d4de" -# lazy = true - -# [[resnet18.download]] -# sha256 = "f4041ea1d1ec9bba86c7a5a519daaa49bb096a55fcd4ebf74f0743c8bdcb1c35" -# url = "https://github.com/LuxDL/Lux.jl/releases/download/weights/resnet18.tar.gz" - -# [resnet34] -# git-tree-sha1 = "306a8055ae9207ae2a316e31b376254557e481c9" -# lazy = true - -# [[resnet34.download]] -# sha256 = "d62e40ee9213ea9611e3fcedc958df4011da1fa108fb1537bac91e6b7778a3c8" -# url = "https://github.com/LuxDL/Lux.jl/releases/download/weights/resnet34.tar.gz" - -# [resnet50] -# git-tree-sha1 = "8c5866edb29b53f581a9ed7148efa1dbccde6133" -# lazy = true - -# [[resnet50.download]] -# sha256 = "275365d76e592c6ea35574853a75ee068767641664e7817aedf394fcd7fea25a" -# url = "https://github.com/LuxDL/Lux.jl/releases/download/weights/resnet50.tar.gz" - [vgg11] git-tree-sha1 = "ea7e8ef9399a0fe0aad2331781af5d6435950d36" lazy = true diff --git a/docs/src/api/vision.md b/docs/src/api/vision.md index c34ed1d..064384b 100644 --- a/docs/src/api/vision.md +++ b/docs/src/api/vision.md @@ -46,6 +46,12 @@ Vision.ResNeXt | `VGG(16; batchnorm=true)` | 72.11 | 91.02 | | `VGG(19; batchnorm=true)` | 72.95 | 91.32 | +!!! note "Pretrained Models from Metalhead" + + For Models imported from Metalhead, the pretrained weights can be loaded if they are + available in Metalhead. Refer to the [Metalhead.jl docs](https://fluxml.ai/Metalhead.jl/stable/#Image-Classification) + for a list of available pretrained models. + ### Preprocessing All the pretrained models require that the images be normalized with the parameters diff --git a/ext/BoltzMetalheadExt.jl b/ext/BoltzMetalheadExt.jl index 4e28098..2a4e33d 100644 --- a/ext/BoltzMetalheadExt.jl +++ b/ext/BoltzMetalheadExt.jl @@ -9,46 +9,52 @@ using Boltz: Boltz, Utils, Vision Utils.is_extension_loaded(::Val{:Metalhead}) = true -function Vision.ResNetMetalhead(depth::Int) +function Vision.ResNetMetalhead(depth::Int; pretrained::Bool=false) @argcheck depth in (18, 34, 50, 101, 152) - model = FromFluxAdaptor()(Metalhead.ResNet(depth).layers) + model = FromFluxAdaptor(; preserve_ps_st=pretrained)(Metalhead.ResNet( + depth; pretrain=pretrained).layers) return Symbol(:resnet, depth), model end -function Vision.ResNeXtMetalhead(depth::Int) +function Vision.ResNeXtMetalhead(depth::Int; pretrained::Bool=false) @argcheck depth in (50, 101, 152) - model = FromFluxAdaptor()(Metalhead.ResNeXt(depth).layers) + model = FromFluxAdaptor(; preserve_ps_st=pretrained)(Metalhead.ResNeXt( + depth; pretrain=pretrained).layers) return Symbol(:resnext, depth), model end -function Vision.GoogLeNetMetalhead() - model = FromFluxAdaptor()(Metalhead.GoogLeNet().layers) +function Vision.GoogLeNetMetalhead(; pretrained::Bool=false) + model = FromFluxAdaptor(; preserve_ps_st=pretrained)(Metalhead.GoogLeNet( + ; pretrain=pretrained).layers) return :googlenet, model end -function Vision.DenseNetMetalhead(depth::Int) +function Vision.DenseNetMetalhead(depth::Int; pretrained::Bool=false) @argcheck depth in (121, 161, 169, 201) - model = FromFluxAdaptor()(Metalhead.DenseNet(depth).layers) + model = FromFluxAdaptor(; preserve_ps_st=pretrained)(Metalhead.DenseNet( + depth; pretrain=pretrained).layers) return Symbol(:densenet, depth), model end -function Vision.MobileNetMetalhead(name::Symbol) +function Vision.MobileNetMetalhead(name::Symbol; pretrained::Bool=false) @argcheck name in (:v1, :v2, :v3_small, :v3_large) + adaptor = FromFluxAdaptor(; preserve_ps_st=pretrained) model = if name == :v1 - FromFluxAdaptor()(Metalhead.MobileNetv1().layers) + adaptor(Metalhead.MobileNetv1(; pretrain=pretrained).layers) elseif name == :v2 - FromFluxAdaptor()(Metalhead.MobileNetv2().layers) + adaptor(Metalhead.MobileNetv2(; pretrain=pretrained).layers) elseif name == :v3_small - FromFluxAdaptor()(Metalhead.MobileNetv3(:small).layers) + adaptor(Metalhead.MobileNetv3(:small; pretrain=pretrained).layers) elseif name == :v3_large - FromFluxAdaptor()(Metalhead.MobileNetv3(:large).layers) + adaptor(Metalhead.MobileNetv3(:large; pretrain=pretrained).layers) end return Symbol(:mobilenet_, name), model end -function Vision.ConvMixerMetalhead(name::Symbol) +function Vision.ConvMixerMetalhead(name::Symbol; pretrained::Bool=false) @argcheck name in (:base, :large, :small) - model = FromFluxAdaptor()(Metalhead.ConvMixer(name).layers) + model = FromFluxAdaptor(; preserve_ps_st=pretrained)(Metalhead.ConvMixer( + name; pretrain=pretrained).layers) return Symbol(:convmixer_, name), model end diff --git a/src/vision/extensions.jl b/src/vision/extensions.jl index 1acaeed..2364be4 100644 --- a/src/vision/extensions.jl +++ b/src/vision/extensions.jl @@ -108,8 +108,8 @@ for f in [:ResNet, :ResNeXt, :GoogLeNet, :DenseNet, :MobileNet, :ConvMixer] error("`Metalhead.jl` is not loaded. Please load `Metalhead.jl` to use \ this function.") end - name, model = $(f_metalhead)(args...) - return MetalheadWrapperLayer(model, name, pretrained) + name, model = $(f_metalhead)(args...; pretrained) + return MetalheadWrapperLayer(model, name, false) end end end diff --git a/test/vision_tests.jl b/test/vision_tests.jl index 4188f29..cf3c009 100644 --- a/test/vision_tests.jl +++ b/test/vision_tests.jl @@ -58,38 +58,41 @@ end @testitem "ResNet" setup=[SharedTestSetup] tags=[:vision] begin for (mode, aType, dev, ongpu) in MODES, depth in [18, 34, 50, 101, 152] - model = Vision.ResNet(depth; pretrained=false) - ps, st = Lux.setup(Random.default_rng(), model) |> dev - st = Lux.testmode(st) - img = randn(Float32, 224, 224, 3, 2) |> aType + @testset for pretrained in [false, true] + model = Vision.ResNet(depth; pretrained) + ps, st = Lux.setup(Random.default_rng(), model) |> dev + st = Lux.testmode(st) + img = randn(Float32, 224, 224, 3, 2) |> aType - @jet model(img, ps, st) - @test size(first(model(img, ps, st))) == (1000, 2) + @jet model(img, ps, st) + @test size(first(model(img, ps, st))) == (1000, 2) - GC.gc(true) + GC.gc(true) + end end end @testitem "ResNeXt" setup=[SharedTestSetup] tags=[:vision] begin for (mode, aType, dev, ongpu) in MODES, depth in [50, 101, 152] - model = Vision.ResNeXt(depth; pretrained=false) - ps, st = Lux.setup(Random.default_rng(), model) |> dev - st = Lux.testmode(st) - img = randn(Float32, 224, 224, 3, 2) |> aType + @testset for pretrained in [false, true] + model = Vision.ResNeXt(depth; pretrained) + ps, st = Lux.setup(Random.default_rng(), model) |> dev + model = Vision.ResNeXt(depth; pretrained=false) + ps, st = Lux.setup(Random.default_rng(), model) |> dev + st = Lux.testmode(st) + img = randn(Float32, 224, 224, 3, 2) |> aType - @jet model(img, ps, st) - @test size(first(model(img, ps, st))) == (1000, 2) + @jet model(img, ps, st) + @test size(first(model(img, ps, st))) == (1000, 2) - GC.gc(true) + GC.gc(true) + end end end @testitem "VGG" setup=[SharedTestSetup] tags=[:vision] begin for (mode, aType, dev, ongpu) in MODES, depth in [11, 13, 16, 19] - @testset "pretrained: $(pretrained), batchnorm: $(batchnorm)" for pretrained in [ - false, true], - batchnorm in [false, true] - + @testset for pretrained in [false, true], batchnorm in [false, true] model = Vision.VGG(depth; batchnorm, pretrained) ps, st = Lux.setup(Random.default_rng(), model) |> dev st = Lux.testmode(st) From d17892a3d882dd50b761bcdaf03ad4abee91ee4d Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Thu, 12 Sep 2024 22:31:30 -0400 Subject: [PATCH 15/21] feat: add `SqueezeNet` and `WideResNet` --- docs/ref.bib | 20 +++++++++++++++++ docs/src/api/vision.md | 2 ++ ext/BoltzMetalheadExt.jl | 32 ++++++++++++++++----------- src/vision/Vision.jl | 4 ++-- src/vision/extensions.jl | 47 ++++++++++++++++++++++++++++++++-------- test/vision_tests.jl | 17 +++++++++++++++ 6 files changed, 98 insertions(+), 24 deletions(-) diff --git a/docs/ref.bib b/docs/ref.bib index da6e339..0e70441 100644 --- a/docs/ref.bib +++ b/docs/ref.bib @@ -89,3 +89,23 @@ @inproceedings{howard2019searching pages = {1314--1324}, year = {2019} } + +@misc{iandola2016squeezenetalexnetlevelaccuracy50x, + title = {SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size}, + author = {Forrest N. Iandola and Song Han and Matthew W. Moskewicz and Khalid Ashraf and William J. Dally and Kurt Keutzer}, + year = {2016}, + eprint = {1602.07360}, + archiveprefix = {arXiv}, + primaryclass = {cs.CV}, + url = {https://arxiv.org/abs/1602.07360} +} + +@misc{zagoruyko2017wideresidualnetworks, + title = {Wide Residual Networks}, + author = {Sergey Zagoruyko and Nikos Komodakis}, + year = {2017}, + eprint = {1605.07146}, + archiveprefix = {arXiv}, + primaryclass = {cs.CV}, + url = {https://arxiv.org/abs/1605.07146} +} diff --git a/docs/src/api/vision.md b/docs/src/api/vision.md index 064384b..63c9a54 100644 --- a/docs/src/api/vision.md +++ b/docs/src/api/vision.md @@ -21,6 +21,8 @@ Vision.GoogLeNet Vision.MobileNet Vision.ResNet Vision.ResNeXt +Vision.SqueezeNet +Vision.WideResNet ``` ## Pretrained Models diff --git a/ext/BoltzMetalheadExt.jl b/ext/BoltzMetalheadExt.jl index 2a4e33d..05113c7 100644 --- a/ext/BoltzMetalheadExt.jl +++ b/ext/BoltzMetalheadExt.jl @@ -11,34 +11,30 @@ Utils.is_extension_loaded(::Val{:Metalhead}) = true function Vision.ResNetMetalhead(depth::Int; pretrained::Bool=false) @argcheck depth in (18, 34, 50, 101, 152) - model = FromFluxAdaptor(; preserve_ps_st=pretrained)(Metalhead.ResNet( + return FromFluxAdaptor(; preserve_ps_st=pretrained, force_preserve=true)(Metalhead.ResNet( depth; pretrain=pretrained).layers) - return Symbol(:resnet, depth), model end function Vision.ResNeXtMetalhead(depth::Int; pretrained::Bool=false) @argcheck depth in (50, 101, 152) - model = FromFluxAdaptor(; preserve_ps_st=pretrained)(Metalhead.ResNeXt( + return FromFluxAdaptor(; preserve_ps_st=pretrained, force_preserve=true)(Metalhead.ResNeXt( depth; pretrain=pretrained).layers) - return Symbol(:resnext, depth), model end function Vision.GoogLeNetMetalhead(; pretrained::Bool=false) - model = FromFluxAdaptor(; preserve_ps_st=pretrained)(Metalhead.GoogLeNet( - ; pretrain=pretrained).layers) - return :googlenet, model + return FromFluxAdaptor(; preserve_ps_st=pretrained, force_preserve=true)(Metalhead.GoogLeNet(; + pretrain=pretrained).layers) end function Vision.DenseNetMetalhead(depth::Int; pretrained::Bool=false) @argcheck depth in (121, 161, 169, 201) - model = FromFluxAdaptor(; preserve_ps_st=pretrained)(Metalhead.DenseNet( + return FromFluxAdaptor(; preserve_ps_st=pretrained, force_preserve=true)(Metalhead.DenseNet( depth; pretrain=pretrained).layers) - return Symbol(:densenet, depth), model end function Vision.MobileNetMetalhead(name::Symbol; pretrained::Bool=false) @argcheck name in (:v1, :v2, :v3_small, :v3_large) - adaptor = FromFluxAdaptor(; preserve_ps_st=pretrained) + adaptor = FromFluxAdaptor(; preserve_ps_st=pretrained, force_preserve=true) model = if name == :v1 adaptor(Metalhead.MobileNetv1(; pretrain=pretrained).layers) elseif name == :v2 @@ -48,14 +44,24 @@ function Vision.MobileNetMetalhead(name::Symbol; pretrained::Bool=false) elseif name == :v3_large adaptor(Metalhead.MobileNetv3(:large; pretrain=pretrained).layers) end - return Symbol(:mobilenet_, name), model + return model end function Vision.ConvMixerMetalhead(name::Symbol; pretrained::Bool=false) @argcheck name in (:base, :large, :small) - model = FromFluxAdaptor(; preserve_ps_st=pretrained)(Metalhead.ConvMixer( + return FromFluxAdaptor(; preserve_ps_st=pretrained, force_preserve=true)(Metalhead.ConvMixer( name; pretrain=pretrained).layers) - return Symbol(:convmixer_, name), model +end + +function Vision.SqueezeNetMetalhead(; pretrained::Bool=false) + return FromFluxAdaptor(; preserve_ps_st=pretrained, force_preserve=true)(Metalhead.SqueezeNet(; + pretrain=pretrained).layers) +end + +function Vision.WideResNetMetalhead(depth::Int; pretrained::Bool=false) + @argcheck depth in (18, 34, 50, 101, 152) + return FromFluxAdaptor(; preserve_ps_st=pretrained, force_preserve=true)(Metalhead.WideResNet( + depth; pretrain=pretrained).layers) end end diff --git a/src/vision/Vision.jl b/src/vision/Vision.jl index a1e7c37..3535ef3 100644 --- a/src/vision/Vision.jl +++ b/src/vision/Vision.jl @@ -36,7 +36,7 @@ include("vit.jl") include("vgg.jl") @compat(public, - (AlexNet, ConvMixer, DenseNet, MobileNet, ResNet, - ResNeXt, GoogLeNet, ViT, VisionTransformer, VGG)) + (AlexNet, ConvMixer, DenseNet, MobileNet, ResNet, ResNeXt, + SqueezeNet, GoogLeNet, ViT, VisionTransformer, VGG, WideResNet)) end diff --git a/src/vision/extensions.jl b/src/vision/extensions.jl index 2364be4..f94a4ae 100644 --- a/src/vision/extensions.jl +++ b/src/vision/extensions.jl @@ -1,5 +1,5 @@ """ - ResNet(depth::Int; kwargs...) + ResNet(depth::Int; pretrained::Bool=false) Create a ResNet model [he2016deep](@citep). @@ -15,7 +15,7 @@ Create a ResNet model [he2016deep](@citep). function ResNet end """ - ResNeXt(depth::Int; kwargs...) + ResNeXt(depth::Int; pretrained::Bool=false) Create a ResNeXt model [xie2017aggregated](@citep). @@ -31,7 +31,7 @@ Create a ResNeXt model [xie2017aggregated](@citep). function ResNeXt end """ - GoogLeNet(; kwargs...) + GoogLeNet(; pretrained::Bool=false) Create a GoogLeNet model [szegedy2015going](@citep). @@ -43,7 +43,7 @@ Create a GoogLeNet model [szegedy2015going](@citep). function GoogLeNet end """ - DenseNet(depth::Int; kwargs...) + DenseNet(depth::Int; pretrained::Bool=false) Create a DenseNet model [huang2017densely](@citep). @@ -59,7 +59,7 @@ Create a DenseNet model [huang2017densely](@citep). function DenseNet end """ - MobileNet(name::Symbol; kwargs...) + MobileNet(name::Symbol; pretrained::Bool=false) Create a MobileNet model [howard2017mobilenets, sandler2018mobilenetv2, howard2019searching](@citep). @@ -77,7 +77,7 @@ Create a MobileNet model function MobileNet end """ - ConvMixer(name::Symbol; kwargs...) + ConvMixer(name::Symbol; pretrained::Bool=false) Create a ConvMixer model [trockman2022patches](@citep). @@ -93,13 +93,42 @@ Create a ConvMixer model [trockman2022patches](@citep). """ function ConvMixer end +""" + SqueezeNet(; pretrained::Bool=false) + +Create a SqueezeNet model [iandola2016squeezenetalexnetlevelaccuracy50x](@citep). + +## Keyword Arguments + + - `pretrained::Bool=false`: If `true`, loads pretrained weights when `LuxCore.setup` is + called. +""" +function SqueezeNet end + +""" + WideResNet(depth::Int; pretrained::Bool=false) + +Create a WideResNet model [zagoruyko2017wideresidualnetworks](@citep). + +## Arguments + + - `depth::Int`: The depth of the WideResNet model. Must be one of 18, 34, 50, 101, or 152. + +## Keyword Arguments + + - `pretrained::Bool=false`: If `true`, loads pretrained weights when `LuxCore.setup` is + called. +""" +function WideResNet end + @concrete struct MetalheadWrapperLayer <: AbstractLuxVisionLayer layer pretrained_name::Symbol pretrained::Bool end -for f in [:ResNet, :ResNeXt, :GoogLeNet, :DenseNet, :MobileNet, :ConvMixer] +for f in [:ResNet, :ResNeXt, :GoogLeNet, :DenseNet, + :MobileNet, :ConvMixer, :SqueezeNet, :WideResNet] f_metalhead = Symbol(f, :Metalhead) @eval begin function $(f_metalhead) end @@ -108,8 +137,8 @@ for f in [:ResNet, :ResNeXt, :GoogLeNet, :DenseNet, :MobileNet, :ConvMixer] error("`Metalhead.jl` is not loaded. Please load `Metalhead.jl` to use \ this function.") end - name, model = $(f_metalhead)(args...; pretrained) - return MetalheadWrapperLayer(model, name, false) + model = $(f_metalhead)(args...; pretrained) + return MetalheadWrapperLayer(model, :metalhead, false) end end end diff --git a/test/vision_tests.jl b/test/vision_tests.jl index cf3c009..58131b4 100644 --- a/test/vision_tests.jl +++ b/test/vision_tests.jl @@ -75,6 +75,7 @@ end @testitem "ResNeXt" setup=[SharedTestSetup] tags=[:vision] begin for (mode, aType, dev, ongpu) in MODES, depth in [50, 101, 152] @testset for pretrained in [false, true] + depth == 152 && pretrained && continue model = Vision.ResNeXt(depth; pretrained) ps, st = Lux.setup(Random.default_rng(), model) |> dev model = Vision.ResNeXt(depth; pretrained=false) @@ -90,6 +91,22 @@ end end end +@testitem "SqueezeNet" setup=[SharedTestSetup] tags=[:vision] begin + for (mode, aType, dev, ongpu) in MODES + @testset for pretrained in [false, true] + model = Vision.SqueezeNet(; pretrained) + ps, st = Lux.setup(Random.default_rng(), model) |> dev + st = Lux.testmode(st) + img = randn(Float32, 224, 224, 3, 2) |> aType + + @jet model(img, ps, st) + @test size(first(model(img, ps, st))) == (1000, 2) + + GC.gc(true) + end + end +end + @testitem "VGG" setup=[SharedTestSetup] tags=[:vision] begin for (mode, aType, dev, ongpu) in MODES, depth in [11, 13, 16, 19] @testset for pretrained in [false, true], batchnorm in [false, true] From e89017c7b7323114c61034798c67da511e63338e Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 13 Sep 2024 08:44:19 -0400 Subject: [PATCH 16/21] fix: change default cardinality/width to allow pretrained weights --- ext/BoltzMetalheadExt.jl | 6 ++++-- src/vision/extensions.jl | 9 ++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ext/BoltzMetalheadExt.jl b/ext/BoltzMetalheadExt.jl index 05113c7..f98fa41 100644 --- a/ext/BoltzMetalheadExt.jl +++ b/ext/BoltzMetalheadExt.jl @@ -15,10 +15,12 @@ function Vision.ResNetMetalhead(depth::Int; pretrained::Bool=false) depth; pretrain=pretrained).layers) end -function Vision.ResNeXtMetalhead(depth::Int; pretrained::Bool=false) +function Vision.ResNeXtMetalhead( + depth::Int; cardinality=32, base_width=nothing, pretrained::Bool=false) @argcheck depth in (50, 101, 152) + base_width = base_width === nothing ? (depth == 101 ? 8 : 4) : base_width return FromFluxAdaptor(; preserve_ps_st=pretrained, force_preserve=true)(Metalhead.ResNeXt( - depth; pretrain=pretrained).layers) + depth; pretrain=pretrained, cardinality, base_width).layers) end function Vision.GoogLeNetMetalhead(; pretrained::Bool=false) diff --git a/src/vision/extensions.jl b/src/vision/extensions.jl index f94a4ae..7a20d9b 100644 --- a/src/vision/extensions.jl +++ b/src/vision/extensions.jl @@ -15,7 +15,7 @@ Create a ResNet model [he2016deep](@citep). function ResNet end """ - ResNeXt(depth::Int; pretrained::Bool=false) + ResNeXt(depth::Int; cardinality=32, base_width=nothing, pretrained::Bool=false) Create a ResNeXt model [xie2017aggregated](@citep). @@ -27,6 +27,9 @@ Create a ResNeXt model [xie2017aggregated](@citep). - `pretrained::Bool=false`: If `true`, loads pretrained weights when `LuxCore.setup` is called. + - `cardinality`: The cardinality of the ResNeXt model. Defaults to 32. + - `base_width`: The base width of the ResNeXt model. Defaults to 8 for depth 101 and 4 + otherwise. """ function ResNeXt end @@ -132,12 +135,12 @@ for f in [:ResNet, :ResNeXt, :GoogLeNet, :DenseNet, f_metalhead = Symbol(f, :Metalhead) @eval begin function $(f_metalhead) end - function $(f)(args...; pretrained::Bool=false) + function $(f)(args...; pretrained::Bool=false, kwargs...) if !is_extension_loaded(Val(:Metalhead)) error("`Metalhead.jl` is not loaded. Please load `Metalhead.jl` to use \ this function.") end - model = $(f_metalhead)(args...; pretrained) + model = $(f_metalhead)(args...; pretrained, kwargs...) return MetalheadWrapperLayer(model, :metalhead, false) end end From 4f1d863f12b75ddee4b392a91263003567766a03 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 13 Sep 2024 08:50:54 -0400 Subject: [PATCH 17/21] test: more pretrained weights testing --- docs/src/api/vision.md | 34 ++++++++++++++++++++++------------ test/vision_tests.jl | 26 +++++++++++++++++++++++--- 2 files changed, 45 insertions(+), 15 deletions(-) diff --git a/docs/src/api/vision.md b/docs/src/api/vision.md index 63c9a54..cc699a0 100644 --- a/docs/src/api/vision.md +++ b/docs/src/api/vision.md @@ -35,18 +35,28 @@ Vision.WideResNet Pass `pretrained=true` to the model constructor to load the pretrained weights. - -| MODEL | TOP 1 ACCURACY (%) | TOP 5 ACCURACY (%) | -| :------------------------ | :----------------: | :----------------: | -| `AlexNet()` | 54.48 | 77.72 | -| `VGG(11)` | 67.35 | 87.91 | -| `VGG(13)` | 68.40 | 88.48 | -| `VGG(16)` | 70.24 | 89.80 | -| `VGG(19)` | 71.09 | 90.27 | -| `VGG(11; batchnorm=true)` | 69.09 | 88.94 | -| `VGG(13; batchnorm=true)` | 69.66 | 89.49 | -| `VGG(16; batchnorm=true)` | 72.11 | 91.02 | -| `VGG(19; batchnorm=true)` | 72.95 | 91.32 | +| MODEL | TOP 1 ACCURACY (%) | TOP 5 ACCURACY (%) | +| :------------------------------------------- | :----------------: | :----------------: | +| `AlexNet()` | 54.48 | 77.72 | +| `VGG(11)` | 67.35 | 87.91 | +| `VGG(13)` | 68.40 | 88.48 | +| `VGG(16)` | 70.24 | 89.80 | +| `VGG(19)` | 71.09 | 90.27 | +| `VGG(11; batchnorm=true)` | 69.09 | 88.94 | +| `VGG(13; batchnorm=true)` | 69.66 | 89.49 | +| `VGG(16; batchnorm=true)` | 72.11 | 91.02 | +| `VGG(19; batchnorm=true)` | 72.95 | 91.32 | +| `ResNet(18)` | - | - | +| `ResNet(34)` | - | - | +| `ResNet(50)` | - | - | +| `ResNet(101)` | - | - | +| `ResNet(152)` | - | - | +| `ResNeXt(50; cardinality=32, base_width=4)` | - | - | +| `ResNeXt(101; cardinality=32, base_width=8)` | - | - | +| `ResNeXt(101; cardinality=64, base_width=4)` | - | - | +| `SqueezeNet()` | - | - | +| `WideResNet(50)` | - | - | +| `WideResNet(101)` | - | - | !!! note "Pretrained Models from Metalhead" diff --git a/test/vision_tests.jl b/test/vision_tests.jl index 58131b4..fec2b5c 100644 --- a/test/vision_tests.jl +++ b/test/vision_tests.jl @@ -73,12 +73,32 @@ end end @testitem "ResNeXt" setup=[SharedTestSetup] tags=[:vision] begin + for (mode, aType, dev, ongpu) in MODES + @testset for (depth, cardinality, base_width) in [ + (50, 32, 4), (101, 32, 8), (101, 64, 4), (152, 64, 4)] + @testset for pretrained in [false, true] + depth == 152 && pretrained && continue + + model = Vision.ResNeXt(depth; pretrained, cardinality, base_width) + ps, st = Lux.setup(Random.default_rng(), model) |> dev + st = Lux.testmode(st) + img = randn(Float32, 224, 224, 3, 2) |> aType + + @jet model(img, ps, st) + @test size(first(model(img, ps, st))) == (1000, 2) + + GC.gc(true) + end + end + end +end + +@testitem "WideResNet" setup=[SharedTestSetup] tags=[:vision] begin for (mode, aType, dev, ongpu) in MODES, depth in [50, 101, 152] @testset for pretrained in [false, true] depth == 152 && pretrained && continue - model = Vision.ResNeXt(depth; pretrained) - ps, st = Lux.setup(Random.default_rng(), model) |> dev - model = Vision.ResNeXt(depth; pretrained=false) + + model = Vision.WideResNet(depth; pretrained) ps, st = Lux.setup(Random.default_rng(), model) |> dev st = Lux.testmode(st) img = randn(Float32, 224, 224, 3, 2) |> aType From c30b4da1719d1425cbf6992654757f8293459327 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 13 Sep 2024 12:47:14 -0400 Subject: [PATCH 18/21] fix: try disabling force_preserve --- ext/BoltzMetalheadExt.jl | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ext/BoltzMetalheadExt.jl b/ext/BoltzMetalheadExt.jl index f98fa41..05f04c0 100644 --- a/ext/BoltzMetalheadExt.jl +++ b/ext/BoltzMetalheadExt.jl @@ -11,7 +11,7 @@ Utils.is_extension_loaded(::Val{:Metalhead}) = true function Vision.ResNetMetalhead(depth::Int; pretrained::Bool=false) @argcheck depth in (18, 34, 50, 101, 152) - return FromFluxAdaptor(; preserve_ps_st=pretrained, force_preserve=true)(Metalhead.ResNet( + return FromFluxAdaptor(; preserve_ps_st=pretrained)(Metalhead.ResNet( depth; pretrain=pretrained).layers) end @@ -19,24 +19,24 @@ function Vision.ResNeXtMetalhead( depth::Int; cardinality=32, base_width=nothing, pretrained::Bool=false) @argcheck depth in (50, 101, 152) base_width = base_width === nothing ? (depth == 101 ? 8 : 4) : base_width - return FromFluxAdaptor(; preserve_ps_st=pretrained, force_preserve=true)(Metalhead.ResNeXt( + return FromFluxAdaptor(; preserve_ps_st=pretrained)(Metalhead.ResNeXt( depth; pretrain=pretrained, cardinality, base_width).layers) end function Vision.GoogLeNetMetalhead(; pretrained::Bool=false) - return FromFluxAdaptor(; preserve_ps_st=pretrained, force_preserve=true)(Metalhead.GoogLeNet(; + return FromFluxAdaptor(; preserve_ps_st=pretrained)(Metalhead.GoogLeNet(; pretrain=pretrained).layers) end function Vision.DenseNetMetalhead(depth::Int; pretrained::Bool=false) @argcheck depth in (121, 161, 169, 201) - return FromFluxAdaptor(; preserve_ps_st=pretrained, force_preserve=true)(Metalhead.DenseNet( + return FromFluxAdaptor(; preserve_ps_st=pretrained)(Metalhead.DenseNet( depth; pretrain=pretrained).layers) end function Vision.MobileNetMetalhead(name::Symbol; pretrained::Bool=false) @argcheck name in (:v1, :v2, :v3_small, :v3_large) - adaptor = FromFluxAdaptor(; preserve_ps_st=pretrained, force_preserve=true) + adaptor = FromFluxAdaptor(; preserve_ps_st=pretrained) model = if name == :v1 adaptor(Metalhead.MobileNetv1(; pretrain=pretrained).layers) elseif name == :v2 @@ -51,18 +51,18 @@ end function Vision.ConvMixerMetalhead(name::Symbol; pretrained::Bool=false) @argcheck name in (:base, :large, :small) - return FromFluxAdaptor(; preserve_ps_st=pretrained, force_preserve=true)(Metalhead.ConvMixer( + return FromFluxAdaptor(; preserve_ps_st=pretrained)(Metalhead.ConvMixer( name; pretrain=pretrained).layers) end function Vision.SqueezeNetMetalhead(; pretrained::Bool=false) - return FromFluxAdaptor(; preserve_ps_st=pretrained, force_preserve=true)(Metalhead.SqueezeNet(; + return FromFluxAdaptor(; preserve_ps_st=pretrained)(Metalhead.SqueezeNet(; pretrain=pretrained).layers) end function Vision.WideResNetMetalhead(depth::Int; pretrained::Bool=false) @argcheck depth in (18, 34, 50, 101, 152) - return FromFluxAdaptor(; preserve_ps_st=pretrained, force_preserve=true)(Metalhead.WideResNet( + return FromFluxAdaptor(; preserve_ps_st=pretrained)(Metalhead.WideResNet( depth; pretrain=pretrained).layers) end From cf40fe0a6fdb810925d0fb085af21c5061e43f33 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 13 Sep 2024 20:26:06 -0400 Subject: [PATCH 19/21] test: check for imagenet accuracy --- Project.toml | 4 +- test/Project.toml | 4 ++ test/shared_testsetup.jl | 2 +- test/testimages/monarch_color.jld2 | Bin 0 -> 1389533 bytes test/vision_tests.jl | 70 ++++++++++++++++++++++++++--- 5 files changed, 71 insertions(+), 9 deletions(-) create mode 100644 test/testimages/monarch_color.jld2 diff --git a/Project.toml b/Project.toml index d359023..46bbd11 100644 --- a/Project.toml +++ b/Project.toml @@ -54,13 +54,13 @@ DynamicExpressions = "0.16, 0.17, 0.18, 0.19" ForwardDiff = "0.10.36" Functors = "0.4.12" GPUArraysCore = "0.1.6" -JLD2 = "0.4.48, 0.5" +JLD2 = "0.5" LazyArtifacts = "1.10" Lux = "1" LuxCore = "1" MLDataDevices = "1.1" Markdown = "1.10" -Metalhead = "0.9" +Metalhead = "0.9.4" NNlib = "0.9.21" Random = "1.10" Reexport = "1.2.2" diff --git a/test/Project.toml b/test/Project.toml index a724ae5..ae4da80 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -3,6 +3,7 @@ Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" Bumper = "8ce10254-0962-460f-a3d8-1f77fea1446e" ComponentArrays = "b0b7db55-cfe3-40fc-9ded-d10e2dbeff66" DataInterpolations = "82cc6244-b520-54b8-b5a6-8a565e85f1d0" +Downloads = "f43a241f-c20a-4ad4-852c-f6b1247861c6" DynamicExpressions = "a40a106e-89c9-4ca8-8020-a735e8728b6b" Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" ExplicitImports = "7d51a73a-1435-4ff3-83d9-f097790105c7" @@ -10,6 +11,7 @@ ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" Hwloc = "0e44f5e4-bd66-52a0-8798-143a42290a1d" InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240" +JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819" Lux = "b2108857-7c20-44ae-9111-449ecde12c47" LuxLib = "82251201-b29d-42c6-8e01-566dec8acb11" LuxTestUtils = "ac9de150-d08f-4546-94fb-7472b5760531" @@ -29,6 +31,7 @@ Aqua = "0.8.7" Bumper = "0.6, 0.7" ComponentArrays = "0.15.16" DataInterpolations = "< 5.3" +Downloads = "1.6" DynamicExpressions = "0.16, 0.17, 0.18, 0.19" Enzyme = "0.12" ExplicitImports = "1.9.0" @@ -36,6 +39,7 @@ ForwardDiff = "0.10.36" GPUArraysCore = "0.1.6" Hwloc = "3.2.0" InteractiveUtils = "<0.0.1, 1" +JLD2 = "0.5" Lux = "1" LuxLib = "1" LuxTestUtils = "1.1.2" diff --git a/test/shared_testsetup.jl b/test/shared_testsetup.jl index 7a4599f..44bfaac 100644 --- a/test/shared_testsetup.jl +++ b/test/shared_testsetup.jl @@ -5,7 +5,7 @@ Enzyme.API.runtimeActivity!(true) import Reexport: @reexport @reexport using Boltz, Lux, GPUArraysCore, LuxLib, LuxTestUtils, Random, StableRNGs -using MLDataDevices +using MLDataDevices, JLD2 import Metalhead LuxTestUtils.jet_target_modules!(["Boltz", "Lux", "LuxLib"]) diff --git a/test/testimages/monarch_color.jld2 b/test/testimages/monarch_color.jld2 new file mode 100644 index 0000000000000000000000000000000000000000..c69970dd490e82f1b5707d34afbf9908c0ca3ff0 GIT binary patch literal 1389533 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%0Akv+jz{)%RWR!R&*3xc6vh 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

w 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 |@ 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%0A1u)&qainR0dHwpZ{y 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

)8`>?&=0{MRPdmk@}3*7a?y?9@I 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 D dev + st = Lux.testmode(st) |> dev + TEST_X = size == 224 ? MONARCH_224 : + (size == 256 ? MONARCH_256 : error("size must be 224 or 256")) + x = TEST_X |> dev + ypred = first(model(x, ps, st)) |> collect |> vec + top5 = TEST_LBLS[sortperm(ypred; rev=true)] + return "monarch" in top5 +end + +export imagenet_acctest + +end + +@testitem "AlexNet" setup=[SharedTestSetup, PretrainedWeightsTestSetup] tags=[:vision] begin for (mode, aType, dev, ongpu) in MODES @testset "pretrained: $(pretrained)" for pretrained in [true, false] model = Vision.AlexNet(; pretrained) @@ -9,6 +43,10 @@ @jet model(img, ps, st) @test size(first(model(img, ps, st))) == (1000, 2) + if pretrained + @test imagenet_acctest(model, ps, st, dev) + end + GC.gc(true) end end @@ -56,7 +94,7 @@ end end end -@testitem "ResNet" setup=[SharedTestSetup] tags=[:vision] begin +@testitem "ResNet" setup=[SharedTestSetup, PretrainedWeightsTestSetup] tags=[:vision] begin for (mode, aType, dev, ongpu) in MODES, depth in [18, 34, 50, 101, 152] @testset for pretrained in [false, true] model = Vision.ResNet(depth; pretrained) @@ -67,12 +105,16 @@ end @jet model(img, ps, st) @test size(first(model(img, ps, st))) == (1000, 2) + if pretrained + @test imagenet_acctest(model, ps, st, dev) + end + GC.gc(true) end end end -@testitem "ResNeXt" setup=[SharedTestSetup] tags=[:vision] begin +@testitem "ResNeXt" setup=[SharedTestSetup, PretrainedWeightsTestSetup] tags=[:vision] begin for (mode, aType, dev, ongpu) in MODES @testset for (depth, cardinality, base_width) in [ (50, 32, 4), (101, 32, 8), (101, 64, 4), (152, 64, 4)] @@ -87,13 +129,17 @@ end @jet model(img, ps, st) @test size(first(model(img, ps, st))) == (1000, 2) + if pretrained + @test imagenet_acctest(model, ps, st, dev) + end + GC.gc(true) end end end end -@testitem "WideResNet" setup=[SharedTestSetup] tags=[:vision] begin +@testitem "WideResNet" setup=[SharedTestSetup, PretrainedWeightsTestSetup] tags=[:vision] begin for (mode, aType, dev, ongpu) in MODES, depth in [50, 101, 152] @testset for pretrained in [false, true] depth == 152 && pretrained && continue @@ -106,12 +152,16 @@ end @jet model(img, ps, st) @test size(first(model(img, ps, st))) == (1000, 2) + if pretrained + @test imagenet_acctest(model, ps, st, dev) + end + GC.gc(true) end end end -@testitem "SqueezeNet" setup=[SharedTestSetup] tags=[:vision] begin +@testitem "SqueezeNet" setup=[SharedTestSetup, PretrainedWeightsTestSetup] tags=[:vision] begin for (mode, aType, dev, ongpu) in MODES @testset for pretrained in [false, true] model = Vision.SqueezeNet(; pretrained) @@ -122,12 +172,16 @@ end @jet model(img, ps, st) @test size(first(model(img, ps, st))) == (1000, 2) + if pretrained + @test imagenet_acctest(model, ps, st, dev) + end + GC.gc(true) end end end -@testitem "VGG" setup=[SharedTestSetup] tags=[:vision] begin +@testitem "VGG" setup=[SharedTestSetup, PretrainedWeightsTestSetup] tags=[:vision] begin for (mode, aType, dev, ongpu) in MODES, depth in [11, 13, 16, 19] @testset for pretrained in [false, true], batchnorm in [false, true] model = Vision.VGG(depth; batchnorm, pretrained) @@ -138,6 +192,10 @@ end @jet model(img, ps, st) @test size(first(model(img, ps, st))) == (1000, 2) + if pretrained + @test imagenet_acctest(model, ps, st, dev) + end + GC.gc(true) end end From 8ce1b1075a0b5642f65c8156c3afe668509ef35a Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 13 Sep 2024 21:49:02 -0400 Subject: [PATCH 20/21] fix: vgg pretrained weights --- Artifacts.toml | 48 ++++++++++++++++++++++----------------------- ext/BoltzJLD2Ext.jl | 11 ----------- 2 files changed, 24 insertions(+), 35 deletions(-) diff --git a/Artifacts.toml b/Artifacts.toml index af797ce..1556df4 100644 --- a/Artifacts.toml +++ b/Artifacts.toml @@ -7,65 +7,65 @@ lazy = true url = "https://huggingface.co/LuxDL/alexnet/resolve/2c48051ecb131d38f2209470cdda70a343289db1/alexnet.tar.gz" [vgg11] -git-tree-sha1 = "ea7e8ef9399a0fe0aad2331781af5d6435950d36" +git-tree-sha1 = "2468801ab9bc7343c02a141e145e95209236b218" lazy = true [[vgg11.download]] - sha256 = "a88b78c4e939138270068933f6278fa6392ce699991385000b1b9bb0ff53fa3e" - url = "https://github.com/LuxDL/Lux.jl/releases/download/weights/vgg11.tar.gz" + sha256 = "509567b428c02f7e9fa69ad7b6e0f62a1347ce6ec7fbad4e4cb4fddbf4f66b60" + url = "https://huggingface.co/LuxDL/vgg/resolve/ac7292d920627cdb66caee17420bfee5dbfe0f61/vgg11.tar.gz" [vgg11_bn] -git-tree-sha1 = "6bb8128b150ac7ca30c32e34295d8d7403471942" +git-tree-sha1 = "e444f279f7b6641da80f4910362d0ccb37a5fe96" lazy = true [[vgg11_bn.download]] - sha256 = "159392d11cb5ced5bfe66dc9da7bd12fbbf92687bbea9e9bb96bf0c6b58c9ef2" - url = "https://github.com/LuxDL/Lux.jl/releases/download/weights/vgg11_bn.tar.gz" + sha256 = "8ed6002ccad7e204276d638e8bc288cce85f6b26f0a6d7cb5a85d714750a0cc7" + url = "https://huggingface.co/LuxDL/vgg/resolve/0ecfa4aea43abc4bbf27fd7f185ffda3fdc5d31a/vgg11_bn.tar.gz" [vgg13] -git-tree-sha1 = "260246834e15048ec128fadc6d1a5dd050dd0928" +git-tree-sha1 = "d9b0cc88a71a8eabe3375e9bb92b601cb0c984a5" lazy = true [[vgg13.download]] - sha256 = "757c555f47e2dd4898e89fcb6fb94f1a7a9977e4cdbdba5502eacd1d3496cf3b" - url = "https://github.com/LuxDL/Lux.jl/releases/download/weights/vgg13.tar.gz" + sha256 = "4c554fb0d7ed976019c0d03ffe9ec6ed0cc88d8fa94a3405c65b55e138c5a7b7" + url = "https://huggingface.co/LuxDL/vgg/resolve/f4a690e83af5a8f9e907e33de0b2d53b8a6ad1cc/vgg13.tar.gz" [vgg13_bn] -git-tree-sha1 = "623d2ae96cbf935ae09067fb7e85ca6894b79447" +git-tree-sha1 = "12ac8f1c9fadfcd4fb80db270ffa17ec96375fb7" lazy = true [[vgg13_bn.download]] - sha256 = "3ccfb481b79bf56e6b70fefbc727127f5eb6de6478b1c57be669e5e5bb007377" - url = "https://github.com/LuxDL/Lux.jl/releases/download/weights/vgg13_bn.tar.gz" + sha256 = "e6f69a7580a9af6eedbbb11c1c590ad6da4e57872dfdb2ac38f2e085d50b429b" + url = "https://huggingface.co/LuxDL/vgg/resolve/5f6acdbc972e0455428c4618c41ebedcd7d5b14b/vgg13_bn.tar.gz" [vgg16] -git-tree-sha1 = "0e4d8a869e2688c765a3126c8a8c59e4a58fe97d" +git-tree-sha1 = "8b85924419036f584e32aac9500b1d198a3b748a" lazy = true [[vgg16.download]] - sha256 = "79463750e1fd2424928b21a8d5d0cb2328c46e5cf39252600e0d132570bfd931" - url = "https://github.com/LuxDL/Lux.jl/releases/download/weights/vgg16.tar.gz" + sha256 = "9e2905a02c4f2425e199b5d7b47aad9c6d2029850d2f2fd4d9c1a9d26dafb163" + url = "https://huggingface.co/LuxDL/vgg/resolve/d05baefb64db70c66ccfe6daa6e2a3b7ce8b3021/vgg16.tar.gz" [vgg16_bn] -git-tree-sha1 = "b93f35dddcaec69444e0cfb709a19be4fb6be53f" +git-tree-sha1 = "46d8299cc071102ceaf9e7d84699a7029dc0293a" lazy = true [[vgg16_bn.download]] - sha256 = "98f3e88c12fd07faa20505c864bfe2afc17e714ac5ddb4b05018fab25d9b3373" - url = "https://github.com/LuxDL/Lux.jl/releases/download/weights/vgg16_bn.tar.gz" + sha256 = "b0fb3382434fd4f025f2e5517fc29b787aca093300d1a683d4dc10d380d102ed" + url = "https://huggingface.co/LuxDL/vgg/resolve/79b657b252c9b9a2f0fecb67c10ba4ec6c4fed0b/vgg16_bn.tar.gz" [vgg19] -git-tree-sha1 = "8c0f1bdb7e540f1529a4038a0c73971debb1634b" +git-tree-sha1 = "4dfc386f5da165daf80429b15a9a6bf7c2bf1b3b" lazy = true [[vgg19.download]] - sha256 = "2cedf1574207abe1989619aab292c51964dc27226b8852f0ce8a5acbc66ded31" - url = "https://github.com/LuxDL/Lux.jl/releases/download/weights/vgg19.tar.gz" + sha256 = "662c7a63b07fdf52bb548a2019c31dd19d43e8675beb8fecf9ff3901ba36ef6e" + url = "https://huggingface.co/LuxDL/vgg/resolve/0268c4327e5ab4ae7172755bb767bf80dd792b0c/vgg19.tar.gz" [vgg19_bn] -git-tree-sha1 = "fb3ec225e8a0b2eb838be682c6facceaa5b8aad3" +git-tree-sha1 = "c0db4c840ae575da62ed28b3fcb29e3ca4da570a" lazy = true [[vgg19_bn.download]] - sha256 = "7a8d3d43ea092db4f53e721015078fcba4980dd5534a743f2b388165f8af185d" - url = "https://github.com/LuxDL/Lux.jl/releases/download/weights/vgg19_bn.tar.gz" + sha256 = "43a0005b4f4ad261773e5a9dd2241165c211be476d6bce8493fd470bfe16ef5f" + url = "https://huggingface.co/LuxDL/vgg/resolve/9b3f3be58a84e52b40f5489c481d954d0cf4f2b4/vgg19_bn.tar.gz" diff --git a/ext/BoltzJLD2Ext.jl b/ext/BoltzJLD2Ext.jl index c825ba4..0d38815 100644 --- a/ext/BoltzJLD2Ext.jl +++ b/ext/BoltzJLD2Ext.jl @@ -1,7 +1,6 @@ module BoltzJLD2Ext using JLD2: JLD2 -using Random: Random using Boltz: InitializeModels, Utils @@ -11,14 +10,4 @@ function InitializeModels.load_using_jld2_internal(args...; kwargs...) return JLD2.load(args...; kwargs...) end -function Base.convert(::Type{Random.Xoshiro}, - x::JLD2.ReconstructedStatic{ - Symbol("Random.Xoshiro"), (:s0, :s1, :s2, :s3), NTuple{4, UInt64}}) - return Random.Xoshiro(x.s0, x.s1, x.s2, x.s3) -end -function Base.convert(::Type{Random.Xoshiro}, - x::JLD2.ReconstructedStatic{:Xoshiro, (:s0, :s1, :s2, :s3), NTuple{4, UInt64}}) - return Random.Xoshiro(x.s0, x.s1, x.s2, x.s3) -end - end From d67d60f312d4458fd648f7647786be9d938df09a Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 13 Sep 2024 23:33:35 -0400 Subject: [PATCH 21/21] refactor: store static bool in Hamiltonian Layer --- Project.toml | 2 ++ src/layers/Layers.jl | 1 + src/layers/hamiltonian.jl | 9 +++++---- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Project.toml b/Project.toml index 46bbd11..84814c5 100644 --- a/Project.toml +++ b/Project.toml @@ -21,6 +21,7 @@ Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a" NNlib = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" +Static = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" WeightInitializers = "d49dbf32-c5c2-4618-8acc-27bb2598ef2d" @@ -65,6 +66,7 @@ NNlib = "0.9.21" Random = "1.10" Reexport = "1.2.2" ReverseDiff = "1.15" +Static = "1.1.1" Statistics = "1.10" Tracker = "0.2.34" WeightInitializers = "1" diff --git a/src/layers/Layers.jl b/src/layers/Layers.jl index fe35f04..67c7fab 100644 --- a/src/layers/Layers.jl +++ b/src/layers/Layers.jl @@ -7,6 +7,7 @@ using ConcreteStructs: @concrete using ChainRulesCore: ChainRulesCore, @non_differentiable, @ignore_derivatives using Markdown: @doc_str using Random: AbstractRNG +using Static: Static using ForwardDiff: ForwardDiff diff --git a/src/layers/hamiltonian.jl b/src/layers/hamiltonian.jl index 5268e43..b071f14 100644 --- a/src/layers/hamiltonian.jl +++ b/src/layers/hamiltonian.jl @@ -36,7 +36,8 @@ returns the time derivatives for position and momentum. [Nested Autodiff](https://lux.csail.mit.edu/stable/manual/nested_autodiff) for more information and known limitations. """ -@concrete struct HamiltonianNN{FST} <: AbstractLuxWrapperLayer{:model} +@concrete struct HamiltonianNN <: AbstractLuxWrapperLayer{:model} + fixed_state_type model autodiff end @@ -55,7 +56,7 @@ function HamiltonianNN{FST}(model; autodiff=nothing) where {FST} end end - return HamiltonianNN{FST}(model, autodiff) + return HamiltonianNN(Static.static(FST), model, autodiff) end function LuxCore.initialstates(rng::AbstractRNG, hnn::HamiltonianNN) @@ -69,8 +70,8 @@ function (hnn::HamiltonianNN)(x::AbstractVector, ps, st) return vec(y), stₙ end -function (hnn::HamiltonianNN{FST})(x::AbstractArray{T, N}, ps, st) where {FST, T, N} - model = StatefulLuxLayer{FST}(hnn.model, ps, st.model) +function (hnn::HamiltonianNN)(x::AbstractArray{T, N}, ps, st) where {T, N} + model = StatefulLuxLayer{Static.known(hnn.fixed_state_type)}(hnn.model, ps, st.model) st.first_call && check_hamiltonian_layer(hnn.model, x, ps, st.model)