tensorflow2使用deepmatch绘制DSSM模型报错

问题遇到的现象和发生背景

在使用Deepmatch包构建了DSSM模型后,我想使用tf.keras.utils.plot_model来绘制模型

遇到的现象和发生背景,请写出第一个错误信息

此时会报一个AttributeError

用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
    layer_name = layer.name
AttributeError: 'ListWrapper' object has no attribute 'name'

运行结果及详细报错内容
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%

我怀疑是Deepmatch包中的DSSM模型对输入进行了list(),但这是必须的部分,所以我很困惑。

我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”

望采纳!!点击该回答右侧的“采纳”按钮即可采纳!!
这个错误的原因是因为你传入的model不是一个单独的层,而是一个包含多个层的列表。

我想到解决方法有两种:
1.将列表中的每个层单独绘制:

for layer in model:
    tf.keras.utils.plot_model(layer)


2.使用tf.keras.Model的subclassing方式来构建模型,然后绘制整个模型:

class DSSM(tf.keras.Model):
    def __init__(self):
        super(DSSM, self).__init__()
        self.layers = [
            # 将所有层添加到这里
        ]

    def call(self, inputs, training=None, mask=None):
        # 将输入传递给所有层并返回输出

model = DSSM()
tf.keras.utils.plot_model(model)