作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我尝试在 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/
我是一名优秀的程序员,十分优秀!