我正在尝试使用TensorFlow Lite模型对输入数据进行预测。使用Keras训练了神经网络,然后将其转换为TFLite标准模型,如下所示:
keras_file = "pruned_model.h5"
converter = lite.TocoConverter.from_keras_model_file(keras_file)
tflite_model = converter.convert()
并将其保存在本地:
TFLITE_MODEL = "dts-model.tflite"
open(TFLITE_MODEL, "wb").write(tflite_model)
然后我将模型加载到Interpreter表示中,以便推理过程可以在其上运行:
tflite_interpreter = tf.lite.Interpreter(model_path=TFLITE_MODEL)
# extracted input and output details
input_details = tflite_interpreter.get_input_details()
output_details = tflite_interpreter.get_output_details()
#created random sample data matching input shape
input_data = np.array(np.random.random_sample(input_shape), dtype=np.float32)
当尝试运行以下代码时,笔记本内核不断崩溃。
tflite_interpreter.set_tensor(input_details[0]['index'], input_data)
Kernel crash/restart screenshot
编辑:这是内核的终端回溯。在运行解释器时,在执行此代码之前,将其初始化,并在执行上述操作后,重新启动。
INFO: Initialized TensorFlow Lite runtime.
[I 09:04:00.289 LabApp] KernelRestarter: restarting kernel (1/5), keep random ports
kernel d960c8d0-d14d-416a-bee3-3549c6a11c76 restarted
这是Jupyter的内核列表:
jupyter kernelspec list
>> Available kernels:
>> python3 /home/username/anaconda3/envs/LearningML/share/jupyter/kernels/python3
我不确定为什么会这样。
1)为什么内核通常会重新启动?我的内核重新启动的原因是什么?
2)还有什么更好的方法可以运行TFLite模型推断并获取输出?
谢谢!