首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义Keras层在"TypeError:未能为KerasTensor构建TypeSpec“中失败

自定义Keras层在"TypeError:未能为KerasTensor构建TypeSpec“中失败
EN

Stack Overflow用户
提问于 2022-03-07 14:13:18
回答 1查看 281关注 0票数 1

我把我的问题简化为一个非常基本的例子:

代码语言:javascript
复制
from tensorflow import keras
from tensorflow.keras import layers

class MyLayer(layers.Layer):
    def __init__(self, z):
        super(MyLayer, self).__init__()
        self.z = z

    def call(self, inputs):
        return inputs * self.z
      
inputs = keras.Input(shape=(2,))
layer = MyLayer(inputs)
z = layer(inputs)

model = keras.Model(inputs=inputs, outputs=z)

但却失败了

代码语言:javascript
复制
TypeError: Could not build a TypeSpec for <KerasTensor: shape=(None, 2) dtype=float32 (created by layer 'tf.math.multiply_17')> with type KerasTensor

你知道问题在哪里吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-07 14:50:53

不能将Keras符号张量与图模式中的Tensorflow张量相乘。有几种方法可以实现您想要的IIUC,这里有一个选项,假设您想要将两个张量传递给MyLayer

代码语言:javascript
复制
from tensorflow import keras
from tensorflow.keras import layers

class MyLayer(layers.Layer):
    def __init__(self):
        super(MyLayer, self).__init__()

    def call(self, inputs):
        x, y = inputs
        return x * y
      
inputs = keras.Input(shape=(2,))
layer = MyLayer()
z = layer([inputs, inputs])

model = keras.Model(inputs=inputs, outputs=z)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71382404

复制
相关文章

相似问题

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