首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于列表输入的Tensorflow 2 tf.function input_signature

问用于列表输入的Tensorflow 2 tf.function input_signature
EN

Stack Overflow用户
提问于 2020-04-24 10:42:49
回答 1查看 1.6K关注 0票数 4

为了用saved_model api导出我的模型,我需要定义加载后要调用的每个方法的input_signature。我不知道如何判断输入是一个可变长度的列表(比如tf.keras.Model.call )。

下面列出了关于input_signature的一些未回答的问题:

还有关于*args:TensorFlow 2 How to use *args in tf.function?的这个,但是它不处理saved_model的问题。

EN

回答 1

Stack Overflow用户

发布于 2021-12-13 03:07:07

也许你可以用张量代替列表作为输入?

然后在[None]中指定tf.TensorSpec维度,以允许跟踪重用方面的灵活性。

由于TensorFlow根据其形状匹配张量,因此使用None维度作为通配符将允许函数为可变大小的输入重用跟踪。如果您有不同长度的序列,或者对于每个批处理具有不同大小的图像,则可以发生可变大小的输入。

代码语言:javascript
复制
@tf.function(input_signature=(tf.TensorSpec(shape=[None], dtype=tf.int32),))
def g(x):
  print('Tracing with', x)
  return x

# No retrace!
print(g(tf.constant([1, 2, 3])))
print(g(tf.constant([1, 2, 3, 4, 5])))
代码语言:javascript
复制
Tracing with Tensor("x:0", shape=(None,), dtype=int32)
tf.Tensor([1 2 3], shape=(3,), dtype=int32)
tf.Tensor([1 2 3 4 5], shape=(5,), dtype=int32)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61406517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档