Tensorflow模型子类化的多重输入

问题描述 投票:0回答:1

我正在使用keras子分类模块来重新构建以前需要两个输入和两个输出的功能模型。我找不到有关是否/如何实现的任何文档。

TF2.0 / Keras子类化API是否允许多输入?

输入到我的功能模型,并且构建很简单:

word_in = Input(shape=(None,))  # sequence length
char_in = Input(shape=(None, None)) 
... layers...
m = Model(inputs=[word_in, char_in], outputs=[output_1, output_2])
python tensorflow keras
1个回答
0
投票

多输入的子分类模型与单输入模型一样。

class MyModel(Model):
    def __init__(self):
        super(MyModel, self).__init__()
        # define layers
        self.dense1 = Dense(10, name='d1')
        self.dense2 = Dense(10, name='d2')

    def call(self, inputs):
        x1 = inputs[0]
        x2 = inputs[1]
        # define model
        return x1, x2

您可以在__init__中定义图层,并在call方法中定义模型。

word_in = Input(shape=(None,))  # sequence length
char_in = Input(shape=(None, None)) 

model = MyModel()
model([word_in, char_in])
# returns 
# (<tf.Tensor 'my_model_4/my_model_4/Identity:0' shape=(?, ?) dtype=float32>,
# <tf.Tensor 'my_model_4/my_model_4_1/Identity:0' shape=(?, ?, ?) dtype=float32>)
© www.soinside.com 2019 - 2024. All rights reserved.