# Neural SDE example no method matching error

**URL:** <https://discourse.julialang.org/t/neural-sde-example-no-method-matching-error/101542>\
**Category:** Machine Learning\
**Tags:** question\
**Created:** [July 12, 2023, 3:22pm UTC](https://discourse.julialang.org/t/neural-sde-example-no-method-matching-error/101542 "2023-07-12T15:22:45Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mieszko](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mieszko/32/202770_2.png) [@Mieszko](https://discourse.julialang.org/u/Mieszko)\
**Post date:** [July 12, 2023, 3:22pm UTC](https://discourse.julialang.org/t/neural-sde-example-no-method-matching-error/101542/1 "2023-07-12T15:22:45Z")

</div>

Hi, I was following this tutorial for NeuralSDEs:  
[https://docs.juliahub.com/DiffEqFlux/BdO4p/1.10.3/examples/NN-SDE/](https://docs.juliahub.com/DiffEqFlux/BdO4p/1.10.3/examples/NN-SDE/).

I tried to compile in Visual Studio and reached it until this moment:

using Plots, Flux, DiffEqFlux, DifferentialEquations, StochasticDiffEq, DiffEqBase.EnsembleAnalysis, Random  
using Statistics

u0 = Float64[2. ; 0.]  
datasize = 30  
tspan = (0.0f0, 1.0f0)  
t = range(tspan[1], tspan[2], length = datasize)

function trueSDEfunc(du, u, p , t)  
true\_A = [-0.1 2.0; -2.0 -0.1]  
du .= ((u.^3)‘true\_A)’  
end

mp = Float32[0.2, 0.2]  
function true\_noise\_func(du, u, p, t)  
du .= mp.\*u  
end

prob = SDEProblem(trueSDEfunc, true\_noise\_func, u0, tspan)

ensemble\_prob = EnsembleProblem(prob)  
ensemble\_sol = solve(ensemble\_prob,SOSRI(),trajectories = 10000)  
ensemble\_sum = EnsembleSummary(ensemble\_sol)

sde\_data,sde\_data\_vars = Array.(timeseries\_point\_meanvar(ensemble\_sol,t))

drift\_dudt = Chain(x → x.^3,  
Dense(2,50,tanh),  
Dense(50,2))  
diffusion\_dudt = Chain(Dense(2,2))  
n\_sde = NeuralDSDE(drift\_dudt,diffusion\_dudt,tspan,SOSRI(),saveat=t,reltol=1e-1,abstol=1e-1)

pred = n\_sde(u0)

drift\_(u, p, t) = drift\_dudt(u, p[1:n\_sde.len])  
diffusion\_(u, p, t) = diffusion\_dudt(u, p[(n\_sde.len+1):end])

prob\_n\_sde = SDEProblem(drift\_, diffusion\_, u0, (0.0f0, 1.0f0) , n\_sde.p)

ensemble\_nprob = EnsembleProblem(prob\_n\_sde)  
ensemble\_nsol = solve(ensemble\_nprob, SOSRI(), trajectories = 100, saveat = t)  
ensemble\_nsum = EnsembleSummary(ensemble\_nsol)

Then got the follwowing error:

LoadError: MethodError: no method matching (::Chain{Tuple{var"#1#2", Dense{typeof(tanh), Matrix{Float32}, Vector{Float32}}, Dense{typeof(identity), Matrix{Float32}, Vector{Float32}}}})(::Vector{Float64}, ::Vector{Float32})  
Closest candidates are:  
(::Chain)(::Any) at C:\Users\User.julia\packages\Flux\EHgZm\src\layers\basic.jl:51

I spent few days on this error but still wasn’t able to fix the issue. Any help will be appreciated.

Thank you!

---

<div class="post-metadata">

**Author:** ![contradict](https://avatars.discourse-cdn.com/v4/letter/c/ac91a4/32.png) [@contradict](https://discourse.julialang.org/u/contradict)\
**Post date:** [July 12, 2023, 4:26pm UTC](https://discourse.julialang.org/t/neural-sde-example-no-method-matching-error/101542/2 "2023-07-12T16:26:22Z")

</div>

I didn’t test this, but it looks like the example you linked uses `FastChain` from SimpleChains.jl and you used `Chain` from Flux.jl.

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [July 13, 2023, 10:53am UTC](https://discourse.julialang.org/t/neural-sde-example-no-method-matching-error/101542/3 "2023-07-13T10:53:22Z")

</div>

The documentation on it is here: [Neural Stochastic Differential Equations With Method of Moments · DiffEqFlux.jl](https://docs.sciml.ai/DiffEqFlux/dev/examples/neural_sde/). I highly recommend you use that instead of the link you found.
