Python 访问Keras中共享层的输出

Python 访问Keras中共享层的输出,python,tensorflow,keras,tensorflow2.0,Python,Tensorflow,Keras,Tensorflow2.0,我正在创建一个自定义模型,其中MyLayer共享并应用于不同的输入: class MyModel(keras.models.Model): def __init__(self): keras.models.Model.__init__(self) self.cnn = MyLayer() # ... def call(self, inputs): # x_1, x_2, x_3 = inputs

我正在创建一个自定义模型,其中
MyLayer
共享并应用于不同的输入:

class MyModel(keras.models.Model):

    def __init__(self):
        keras.models.Model.__init__(self)
        self.cnn = MyLayer()
        # ...

    def call(self, inputs):
        # x_1, x_2, x_3 = inputs
        outputs = [self.cnn(x) for x in inputs]
        # ...
如何为每个输入获取self.cnn的输出?我以不同的比例传递输入,我希望输出也以不同的比例传递。但是,
cnn.output
的大小是根据
x_1
计算的。我知道这是一种预期的行为,因为self.cnn是共享的,我猜
cnn.output
会被初始化,以便根据流经它的第一个张量计算形状。我可以从
call
显式返回
x_1、x_2、x_3
,但为此,我必须为我想到的每个实验覆盖
call
(因为模型要大得多,我想连接到每个层的输出)

如何在不覆盖
调用
方法的情况下获取每个
x_1、x_2、x_3
的输出