Tensorflow模型子类化多输入 [英] Tensorflow Model Subclassing Mutli-Input

查看:276
本文介绍了Tensorflow模型子类化多输入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am using the keras subclassing module to re-make a previously functional model that requires two inputs and two outputs. I cannot find any documentation on if/how this is possible.

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

Does the TF2.0/Keras subclassing API allow for mutli-input?

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

Input to my functional model, and the build is simple:

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])

推荐答案

用于多个输入的子类化模型与用于单个输入模型的子类相同.

Sub-classed model for multiple inputs is no different than like single input model.

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方法中定义模型.

You can define your layers in in __init__ and define your model in call method.

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>)

这篇关于Tensorflow模型子类化多输入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆