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
的输出