嵌套自定义类的Keras模型子类

问题描述

我正在尝试构建Model类的子类的Keras模型,但找不到与Model类的子类的嵌套模型相关的任何东西。

我的模型由两个编码器(它们不共享权重)和一个完全连接的部分组成。

为此,我创建了以下两个类(我省略了一些代码,因为我认为这并不相关,但是如果需要的话,我将全部发布):

class EncoderModel(tf.keras.Model):
    def __init__(self,vocabulary_size,embedding_matrix,max_len):
        super(EncoderModel,self).__init__()
        """Code here"""

    def call(self,inputs):
        """Code here"""

class class EntailmentModel(tf.keras.Model):
   def __init__(self,max_len):
       super(EntailmentModel,self).__init__()
       # Left branch
       self.left_encoder = EncoderModel(vocabulary_size,max_len)
       self.right_encoder = EncoderModel(vocabulary_size,max_len)
    
       """Omitted code"""
    
   def call(self,inputs):
       left_enc_out = self.left_encoder(inputs[0])
       right_enc_out = self.right_encoder(inputs[1])
    
       """Omitted code"""

我创建并编译模型没有任何问题

enc = EntailmentModel(vocabulary_size,40)
enc.compile(optimizer="Adam",loss='categorical_crossentropy',metrics=['accuracy'])

但是当我开始训练模型时,在执行第一批之后,我会收到以下错误消息

AttributeError:“ EntailmentModel”对象没有属性“ loss_functions”

这是我第一次在Keras中使用Model子类,并且不确定在嵌套两个不同模型时我做错了什么。

有人可以告诉我我在做什么错吗?

Model structure

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...