首页 > 解决方案 > ValueError:仅支持单个签名密钥

问题描述

我正在开发一个 tensorflow 2.0 项目,在保存我的模型并尝试转换为 tensorflow lite 格式时,我遇到了这个错误。

saved_decoder2=tf.saved_model.save(decoder, "C:\\Users\\...\\saved_model_for_decoder")
converter2 = tf.lite.TFLiteConverter.from_saved_model("C:\\Users\\...\\saved_model_for_decoder", signature_keys=None)
tflite_model2 = converter2.convert()
open("decoder.tflite", "wb").write(tflite_model2)

错误说:

回溯(最后一次调用):文件“c:/Users/user.../Image-Captioning_using_Tensorflow.py”,第 323 行,在 converter2 = tf.lite.TFLiteConverter.from_saved_model("C:\Users\... \saved_model_for_decoder", signature_keys=None) 文件“C:\Users\user\AppData\Local\Programs\Python\Python38\lib\site-packages\tensorflow\lite\python\lite.py”,第 1033 行,from_saved_model raise ValueError("仅支持单个签名密钥。") ValueError:仅支持单个签名密钥。

请帮我!

标签: pythontensorflowtensorflow2.0tensorflow-lite

解决方案


您能否加载 saved_model 并打印签名并查看它是否包含多个签名?如果是,请指定一个签名。

imported = tf.saved_model.load(path)
print(imported.signatures)

推荐阅读