Saving/Loading hls4ml models
hls4ml
model objects (instances of ModelGraph
class) can be saved to disk and loaded at a later stage. The saved model doesn’t require original Keras/PyTorch/ONNX model for loading.
To save/load a model use the following API:
from hls4ml.converters import convert_from_keras_model, load_saved_model
model = convert_from_keras_model(keras_model, ...)
# Save a model to some path
model.save('some/path/my_hls4ml_model.fml')
# Load a model from a file
loaded_model = load_saved_model('some/path/my_hls4ml_model.fml')
Saved model will have a .fml
extension, but is in fact a gzipped tar archive. Loaded model can be used in the same way as the original one. This includes modification of certain config parameters, for example output directory, layer reuse factor etc.
Linking with existing project
Once the project has been written to disk with ModelGraph.write()
, it can also be linked with at later stage. Similarly to loading a saved model, this feature allows skipping the conversion step. Additionally, it may be used to test manual changes to the generated project.
Linking function will create a special instance of ModelGraph
that only allows calls to compile()
, predict()
and build()
. Other calls to the ModelGraph
instance are disabled.
To link a model use the following API:
from hls4ml.converters import convert_from_keras_model, link_existing_project
model = convert_from_keras_model(keras_model, output_dir='/some/path/', ...)
# Generate the project files and write them to some path
model.write()
# Later on, link this path to the Python runtime
linked_model = link_existing_project('some/path/')
linked_model.compile()
linked_model.predict(...)
linked_model.build(...)