I am trying to use a Keras feature space during inference to create a data window.

input_window= input_featurespace({'temp': [0, 0, 0, 0, 0, 0, 0, 0], 'proc': [0, 0, 0, 0, 0, 0, 0, 0], 'dsp_temp': [0, 0, 0, 0, 0, 0, 0, 0]}).

However, I am getting the following error: `` File "/usr/local/lib/python3.12/site-packages/keras/src/layers/preprocessing/feature_space.py", line 709, in __call__ data = {key: self._convert_input(value) for key, value in data.items()} ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/keras/src/layers/preprocessing/feature_space.py", line 693, in _convert_input if not isinstance(x, (tf.Tensor, tf.SparseTensor, tf.RaggedTensor)): ^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/keras/src/utils/module_utils.py", line 35, in __getattr__ self.initialize() File "/usr/local/lib/python3.12/site-packages/keras/src/utils/module_utils.py", line 29, in initialize raise ImportError(self.import_error_msg) ImportError: This requires the tensorflow module. You can install it viapip install tensorflow`


I understand that this is because Tensorflow has not been installed. However, since the inference device has storage constraints, I don't want to use Tensorflow in my inference environment. Is there any way to get feature space to work with TensorFlow?

**Comment From: mehtamansi29**

Hi @sibyjackgrove -

Thanks for reporting the issue. As you are trying to use a Keras feature space during inference as feature space, feature space define all the preprocessing once and re-use it at different stages of our system.

Here you can find more details about FeatureSpace using a [Keras preprocessing layer](https://keras.io/examples/structured_data/feature_space_advanced/#featurespace-using-a-keras-preprocessing-layer)

Using keras can structure the input like this:

import keras import tensorflow as tf

input_featurespace = keras.Input(shape=(8,), dtype=tf.int32, name='temp') input_featurespace_proc = keras.Input(shape=(8,), dtype=tf.int32, name='proc') input_featurespace_dsp_temp = keras.Input(shape=(8,), dtype=tf.int32, name='dsp_temp')

input_dict = { 'temp': input_featurespace, 'proc': input_featurespace_proc, 'dsp_temp': input_featurespace_dsp_temp }

inputs = input_dict inputs


For more help can you share your reproducible code here?


**Comment From: sibyjackgrove**

I am trying to reload a Keras preprocessor layer. The Preprocessor layer was created with TensorFLow backend. But I am trying to reload it for inference with Numpy backend in an environment without TensorFlow.

Please find the code below. I am unable to attack the model here.

import os os.environ['KERAS_BACKEND'] = 'numpy' import keras

input_featurespace= keras.models.load_model(filepath="saved_models/input_featurespace_w-8_f-4_o-2_v0.keras") input_window= input_featurespace({'temp1': [0, 0, 0, 0, 0, 0, 0, 0],'temp2': [0, 0, 0, 0, 0, 0, 0, 0], 'proc_temp': [0, 0, 0, 0, 0, 0, 0, 0], 'dsp_temp': [0, 0, 0, 0, 0, 0, 0, 0]})

```