|
1 | 1 | module ModelingToolkitNeuralNets
|
2 | 2 |
|
3 |
| -using ModelingToolkit: @parameters, @named, ODESystem, t_nounits, @connector, @variables, |
4 |
| - Equation |
| 3 | +using ModelingToolkit: @parameters, @named, ODESystem, t_nounits |
5 | 4 | using ModelingToolkitStandardLibrary.Blocks: RealInputArray, RealOutputArray
|
6 | 5 | using Symbolics: Symbolics, @register_array_symbolic, @wrapped
|
7 | 6 | using LuxCore: stateless_apply
|
@@ -31,17 +30,17 @@ function NeuralNetworkBlock(n_input = 1,
|
31 | 30 | ca = ComponentArray{eltype}(init_params)
|
32 | 31 |
|
33 | 32 | @parameters p[1:length(ca)] = Vector(ca)
|
34 |
| - # @parameters T::typeof(typeof(p))=typeof(p) [tunable = false] |
| 33 | + @parameters T::typeof(typeof(ca))=typeof(ca) [tunable = false] |
35 | 34 |
|
36 | 35 | @named input = RealInputArray(nin = n_input)
|
37 | 36 | @named output = RealOutputArray(nout = n_output)
|
38 | 37 |
|
39 |
| - out = stateless_apply(chain, input.u, lazyconvert(typeof(ca), p)) |
| 38 | + out = stateless_apply(chain, input.u, lazyconvert(T, p)) |
40 | 39 |
|
41 | 40 | eqs = [output.u ~ out]
|
42 | 41 |
|
43 | 42 | @named ude_comp = ODESystem(
|
44 |
| - eqs, t_nounits, [], [p], systems = [input, output]) |
| 43 | + eqs, t_nounits, [], [p, T], systems = [input, output]) |
45 | 44 | return ude_comp
|
46 | 45 | end
|
47 | 46 |
|
|
0 commit comments