我想使用from_concrete_functions()将自定义函数转换为TF Lite模型。为了熟悉这一点,我通读了文档,但我无法执行TF网站(https://www.tensorflow.org/lite/convert#convert_concrete_functions_)的示例代码。
示例代码:
import tensorflow as tf
# Create a model using low-level tf.* APIs
class Squared(tf.Module):
@tf.function
def __call__(self, x):
return tf.square(x)
model = Squared()
# (ro run your model) result = Squared(5.0) # This prints "25.0"
# (to generate a SavedModel) tf.saved_model.save(model, "saved_model_tf_dir")
concrete_func = model.__call__.get_concrete_function()
# Convert the model
converter = tf.lite.TFLiteConverter.from_concrete_functions([concrete_func],
model)
tflite_model = converter.convert()
当执行&;concrete_func = model.__call__.get_concrete_function()&;TypeError: tf____call__()缺少1个必需的位置参数:'x'
我尝试了TF 2.3, 2.4和谷歌Colab笔记本,它们都给出了相同的错误。我错过了什么,我该怎么做?
查看这个colab笔记本的用法。文档也已更新。检查在这里。
从TensorFlow 2.7版本开始,具体的函数API接受两个参数。在早期的版本中,您应该只传递第一个参数。很抱歉,官方指南会相应更新。