如何解决嵌套自定义类的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子类,并且不确定在嵌套两个不同模型时我做错了什么。
有人可以告诉我我在做什么错吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。