Why use SciANN among all other codes?
The main purpose of SciANN is a platform for people with Scientific Computations backgrounds in mind.
You will find this code very useful for:

Solving ODEs and PDEs using densely connect, complex networks, recurrent networks are on the way.

This platform is ready to use for Curve Fitting, Differentiations, Integration, etc.

If you have other scientific computations in mind that are not implemented yet,
contact us
.
As an example, let's fit a neural network with threehidden layers, each with 10 neurons and \( \tanh \) activation function, on data generated from \( sin(x) \):
import numpy as np
from sciann import Variable, Functional, SciModel
from sciann.constraints import Data
# Synthetic data generated from sin function over [0, 2pi]
x_true = np.linspace(0, np.pi*2, 10000)
y_true = np.sin(x_true)
# The network inputs should be defined with Variable.
x = Variable('x', dtype='float32')
# Each network is defined by Functional.
y = Functional('y', x, [10, 10, 10], activation='tanh')
# The training data is a condition (constraint) on the model.
c1 = Data(y)
# The model is formed with input `x` and condition `c1`.
model = SciModel(x, c1)
# Training: .solve runs the optimization and finds the parameters.
model.train(x_true, y_true, batch_size=32, epochs=100)
# used to evaluate the model after the training.
y_pred = model.predict(x_true)
As you may find, this code takes advantage of Keras
great design and takes it to the next level for scientific computations.