Convert a NeurEco Compression model to a Keras model#

embed license allows to convert a NeurEco Tabular model to a Keras model.

Note

  • This feature is only available for the Python API.

  • This feature requires an existing installation of TensorFlow 2.x and Keras.

Import the NeurEco2Keras library:

from NeurEco import NeurEco2Keras

neureco2keras method of NeurEco2Keras library converts a NeurEco Tabular model to a Keras model.

neureco2keras(neureco_model, keras_model_name=None)

Converts a NeurEco Tabular object to a Keras model

param neureco_model

NeurEco.NeurEcoTabular: The model to convert

param keras_model_name

str, optional: name to assign to the created Keras model, default name is “NeurEco_Keras_Model”

return

Keras model in float32 precision

keras_model = NeurEco2Keras.neureco2keras(neureco_model)
The obtained keras_model is now ready to be used as a usual Keras model.
For example, print its summary (here, the result is for illustrative purposes only) and evaluate it:
''' print Keras model summary '''
keras_model.summary()

''' evaluate the model using Keras '''
keras_output = keras_model.predict(numpy_input_array.astype("float32"))
Model: "EnergyConsumption_NeurEco_Keras_Model"
_________________________________________________________________
Layer (type)                 Output Shape              Param #
=================================================================
input (InputLayer)           [(None, 5)]               0
_________________________________________________________________
tf_op_layer_centeredInputs ( [(None, 5)]               0
_________________________________________________________________
tf_op_layer_normalizedInputs [(None, 5)]               0
_________________________________________________________________
adagos_gemm (AdagosGemm)     (None, 8)                 48
_________________________________________________________________
tf_op_layer_x1TensorActivati [(None, 8)]               0
_________________________________________________________________
adagos_gemm_1 (AdagosGemm)   (None, 1)                 9
_________________________________________________________________
tf_op_layer_outputDescaled ( [(None, 1)]               0
_________________________________________________________________
tf_op_layer_output (TensorFl [(None, 1)]               0
=================================================================
Total params: 57
Trainable params: 57
Non-trainable params: 0
_________________________________________________________________

Note

The number of weights in original NeurEco model .ednn is slightly different than the number of trainable parameters in obtained Keras model. This is because the Keras models are intrinsically fully connected, and some of the weights are present in the Keras model although they are not needed (they have a value of 0).