How to save and load a NeuralFit model or weights?

Question:

I have evolved a neural network to learn y=x^2 using the neuralfit library, but I would like to save the model to do predictions later. I currently have:

import neuralfit
import numpy as np

# y(x) = x^2
x = np.arange(10).reshape(-1,1)
y = x**2

# Evolve model
model = neuralfit.Model(1,1)
model.compile('alpha', loss='mse', monitors=['size'])
model.evolve(x,y,epochs=1000)

# Save model
...

How would I save and load model?

Asked By: emittance

||

Answers:

There are two ways to do this: (1) with Neuralfit and (2) with Keras. It is best to use NeuralFit because the resulting savefile is a lot smaller (50x in this case).

Method 1: with NeuralFit

Based on the documentation:

# Save a model
model.save('model.nf')

# Load a saved model
model = neuralfit.load('model.nf')

Method 2: with Keras

Since NeuralFit allows conversion to Keras, we can convert the model to Keras and then save it using their functionality. In other words:

# Save a model
keras_model = model.to_keras()
keras_model.save('model.h5')

# Load a saved model
keras_model = keras.models.load_model('model.h5')
model = neuralfit.from_keras(keras_model)
Answered By: emittance