gpt4 book ai didi

python - 为什么使用 tf.py_function 的模型无法序列化?

转载 作者:行者123 更新时间:2023-12-01 06:55:37 25 4
gpt4 key购买 nike

根据documentation ty.py_function 使用它的模型无法序列化。

The body of the function (i.e. func) will not be serialized in a GraphDef. Therefore, you should not use this function if you need to serialize your model and restore it in a different environment.

为什么无法序列化?

我一直在寻找解释为什么会出现这种情况以及使用 tf.py_function 的替代方案,但没有找到有用的。

在我的具体情况下,我想使用 Keras Tokenizer 及其方法需要 numpy 数组 - 所以我使用 tf.py_function 调用它。

最佳答案

一般来说,TensorFlow 图包含对张量执行的操作的描述。例如,当您执行 tf.add(a, b) 时,一个新节点将添加到图中,指示应在张量 a 上计算加法运算和b

当您使用tf.py_function时,TensorFlow必须执行您作为函数提供的一些任意Python代码。不幸的是,tf.py_function 无法将任意函数“翻译”为图节点,因此无法将操作本身合并到图中。人们可以考虑将 Python 代码本身嵌入到图中,但由于 TensorFlow 适用于多种语言,因此拥有专门针对一种特定语言的代码的节点是没有意义的。

在 TensorFlow 2.x 中,默认启用急切执行,有 tf.function将特定函数转换为图形,以加快执行速度 ( see guide ),但此功能没有与 tf.py_function 直接集成。

关于python - 为什么使用 tf.py_function 的模型无法序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58818679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com