问题描述
我正在尝试构建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 (将#修改为@)