HLS Model Class

This page documents our hls_model class usage. You can generate generate an hls model object from a keras model through hls4ml’s API:

import hls4ml

# Generate a simple configuration from keras model
config = hls4ml.utils.config_from_keras_model(keras_model, granularity='name')

# Convert to an hls model
hls_model = hls4ml.converters.convert_from_keras_model(keras_model, hls_config=config, output_dir='test_prj')

After that, you can use several methods in that object. Here is a list of all the methods:

Similar functionalities are also supported through command line interface. If you prefer using them, please refer to Command Help section.


write method

Write your keras model as a hls project to hls_model‘s output_dir:

hls_model.write()

compile method

Compile your hls project.

hls_model.compile()

predict method

Similar to keras‘s predict API, you can get the predictions of hls_model just by supplying an input numpy array:

# Suppose that you already have input array X
# Note that you have to do hls_model.compile() before using predict

y = hls_model.predict(X)

This is similar to doing csim simulation, but you can get your prediction results much faster. It’s very helpful when you want to quickly prototype different configurations for your model.


build method

hls_model.build()

#You can also read the report of the build
hls4ml.report.read_vivado_report('hls4ml_prj')

trace method

The trace method is an advanced version of the predict method. It’s used to trace individual outputs from each layer of the hls_model. This is useful for debugging and setting the appropriate configuration.

Return: A dictionary where the keys are the names of the layers, and its values are the layers’s outputs.

predict_ouputs, trace_outputs =  hls_model.trace(X)

#We also support a similar function for keras
keras_trace = hls4ml.model.profiling.get_ymodel_keras(keras_model, X)