CTUAvastLab / Mill.jl

Build flexible hierarchical multi-instance learning models.
https://ctuavastlab.github.io/Mill.jl/stable/
MIT License
86 stars 8 forks source link

Try generated functions in product model #95

Closed pevnak closed 2 years ago

pevnak commented 2 years ago

First try

@generated function (m::ProductModel{<:NamedTuple{MS}})(ds::ProductNode{<:NamedTuple{DS}}) where {MS, DS}
    @assert MS ⊂ DS
    vals = [:(Core.getfield(m.ms, $(QuoteNode(k)))(Core.getfield(ds.data, $(QuoteNode(k))))) for k in MS]
    :(m.m(vcat($(vals...))))
end
simonmandlik commented 2 years ago

Solved in https://github.com/CTUAvastLab/Mill.jl/pull/96