Approximating sine function using Flux for Solving PINN problem

Sir the params([w1,b1,w2,b2,w3,b3]) gave the parameters of the neural network for 1 iteration. So, from the loss function defined above , I tried to iterate by updating the parameters for using

p=params([w1,b1,w2,b2,w3,b3])

Flux.train!(loss_p,p=p,data,opt). However, I have received the same loss function value as before.

Furthermore, Is there any alternate way to solve PINN problems apart from using NeuralPDE.jl? I mean in a step by step way.
Eg: 1D convection equation

  1. creating u(t,x) using Flux.jl where u is a neural network
  2. Differentiating ‘u’ w.r.t time and space coordinates. in (DifferentialEquations.jl)
  3. Then defining the loss function so that we get same solution similar to the way we solve using NeuralPDE.jl

I thought solving in this way will make me better at using julia and understanding in depth.
Thank you.