NeuralODE.reference.ipynb#
[1]:
# %load_ext nb_black
# pip install neural-diffeqs
import neural_diffeqs
print(f"Version: {neural_diffeqs.__version__}")
import torch
Version: 0.3.2
Default NeuralODE#
The only required parameter is:
state_size
[2]:
ODE = neural_diffeqs.NeuralODE(state_size=50)
print(ODE)
NeuralODE(
(mu): TorchNet(
(hidden_1): Sequential(
(linear): Linear(in_features=50, out_features=512, bias=True)
(activation): LeakyReLU(negative_slope=0.01)
)
(hidden_2): Sequential(
(linear): Linear(in_features=512, out_features=512, bias=True)
(activation): LeakyReLU(negative_slope=0.01)
)
(output): Sequential(
(linear): Linear(in_features=512, out_features=50, bias=True)
)
)
)
Changing some parameters#
For example, specify the hidden state size for each network
[3]:
ODE = neural_diffeqs.NeuralODE(state_size=50, mu_hidden=[64, 128, 64])
print(ODE)
NeuralODE(
(mu): TorchNet(
(hidden_1): Sequential(
(linear): Linear(in_features=50, out_features=64, bias=True)
(activation): LeakyReLU(negative_slope=0.01)
)
(hidden_2): Sequential(
(linear): Linear(in_features=64, out_features=128, bias=True)
(activation): LeakyReLU(negative_slope=0.01)
)
(hidden_3): Sequential(
(linear): Linear(in_features=128, out_features=64, bias=True)
(activation): LeakyReLU(negative_slope=0.01)
)
(output): Sequential(
(linear): Linear(in_features=64, out_features=50, bias=True)
)
)
)
Activation functions, dropout, and bias#
[4]:
ODE = neural_diffeqs.NeuralODE(
state_size=50,
mu_hidden=[64, 128, 128, 64],
mu_activation=[torch.nn.Softmax, torch.nn.Tanh],
mu_dropout=[0, 0.2, 0],
)
print(ODE)
NeuralODE(
(mu): TorchNet(
(hidden_1): Sequential(
(linear): Linear(in_features=50, out_features=64, bias=True)
(activation): Softmax(dim=None)
)
(hidden_2): Sequential(
(linear): Linear(in_features=64, out_features=128, bias=True)
(dropout): Dropout(p=0.2, inplace=False)
(activation): Tanh()
)
(hidden_3): Sequential(
(linear): Linear(in_features=128, out_features=128, bias=True)
(activation): Tanh()
)
(hidden_4): Sequential(
(linear): Linear(in_features=128, out_features=64, bias=True)
(activation): Tanh()
)
(output): Sequential(
(linear): Linear(in_features=64, out_features=50, bias=True)
)
)
)