gpt4 book ai didi

python - TypeError : Could not build a TypeSpec for
转载 作者:行者123 更新时间:2023-12-04 15:07:36 24 4
gpt4 key购买 nike

当我尝试在 keras 功能模型的定义中使用 tf.map_fn 时,出现错误:

TypeError: Could not build a TypeSpec for <KerasTensor: ...
例如这个简单的模型将在 tf-nightly 2.5.0 中触发该错误:
import tensorflow as tf

from tensorflow.keras.layers import Input
from tensorflow.keras.models import Model

x = Input(shape=(10,))

y = tf.map_fn(lambda x : x * 2, x, fn_output_signature=tf.float32)

model = Model(inputs=x, outputs=y)
而将对 tf.map_fn 的调用替换为对其他 tensorflow 操作的调用可以正常工作。

最佳答案

这似乎是由于当输入是 keras sympolic 输入时 tf.map_fn 无法确定输入张量的 TypeSpec。
现在有几次我遇到了 tensorflow ops 和 Keras 符号输入张量的问题。将有问题的代码包装在自定义层中似乎通常可以修复它。
例如,将上面的代码替换成这样就可以成功执行:

import tensorflow as tf

from tensorflow.keras.layers import Input, Layer
from tensorflow.keras.models import Model

x = Input(shape=(10,))

class MapLayer(Layer):

def call(self, input):
return tf.map_fn(lambda x : x * 2, input, fn_output_signature=tf.float32)

y = MapLayer()(x)

model = Model(inputs=x, outputs=y)

关于python - TypeError : Could not build a TypeSpec for <KerasTensor when using tf. map_fn 和 keras 功能模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65809906/

24 4 0

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