Keras多输入多输出模型的解读

Keras多输入多输出模型的解读

来考虑下面的模型。我们试图预测 Twitter 上的一条新闻标题有多少转发和点赞数。
模型的主要输入(main_input)将是新闻标题本身,即一系列词语,但是为了增添输入元素的多样性,我们的模型还添加了其他的辅助输入(aux_input)来接收额外的数据,例如新闻标题的发布的时间等。 该模型将通过两个损失函数进行监督学习。较早地在模型中使用主损失函数,是深度学习模型的一个良好正则方法。
在这里插入图片描述

其中,aux_output(Dense)层通过辅助损失调整网络参数,这一结构被应用于Inception系列中(Inception系列整体架构是单输入多输出),能够作为网络正则化的惩罚项存在,也能起到防止梯度消失的作用。main_output(Dense)层作为最后输出层。

源码实现:见链接: Keras中文文档.

Inception 模型

Inception详细描述见论文:https://arxiv.org/abs/1512.03385

from keras.layers import Conv2D, MaxPooling2D, Input
input_img = Input(shape=(256, 256, 3))

tower_1 = Conv2D(64, (1, 1), padding='same', activation='relu')(input_img)
tower_1 = Conv2D(64, (3, 3), padding='same', activation='relu')(tower_1)
tower_2 = Conv2D(64, (1, 1), padding='same', activation='relu')(input_img)
tower_2 = Conv2D(64, (5, 5), padding='same', activation='relu')(tower_2)
tower_3 = MaxPooling2D((3, 3), strides=(1, 1), padding='same')(input_img)
tower_3 = Conv2D(64, (1, 1), padding='same', activation='relu')(tower_3)

# 也可以看成是多输入的连接
output = keras.layers.concatenate([tower_1, tower_2, tower_3], axis=1)

卷积层上的残差连接

resnet论文详见:https://arxiv.org/abs/1512.03385

from keras.layers import Conv2D, Input

# 输入张量为 3 通道 256x256 图像
x = Input(shape=(256, 256, 3))
# 3 输出通道(与输入通道相同)的 3x3 卷积核
y = Conv2D(3, (3, 3), padding='same')(x)

# 返回 x + y   这一层的输入相当于input和卷积层
z = keras.layers.add([x, y])
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值