深度学习入门-框架keras-9keras融合层(Merge)数学计算

Add

keras.layers.Add()

计算一个列表的输入张量的和。
相加层接受一个列表的张量, 所有的张量必须有相同的输入尺寸, 然后返回一个张量(和输入张量尺寸相同)。
例子

import keras
input1 = keras.layers.Input(shape=(16,))
x1 = keras.layers.Dense(8, activation='relu')(input1)
input2 = keras.layers.Input(shape=(32,))
x2 = keras.layers.Dense(8, activation='relu')(input2)
added = keras.layers.Add()([x1, x2])  # 相当于 added = keras.layers.add([x1, x2])

out = keras.layers.Dense(4)(added)
model = keras.models.Model(inputs=[input1, input2], outputs=out)

Subtract

keras.layers.Subtract()

计算两个输入张量的差。
相减层接受一个长度为 2 的张量列表, 两个张量必须有相同的尺寸,然后返回一个值为 (inputs[0] - inputs[1]) 的张量, 输出张量和输入张量尺寸相同。
例子

import keras
input1 = keras.layers.Input(shape=(16,))
x1 = keras.layers.Dense(8, activation='relu')(input1)
input2 = keras.layers.Input(shape=(32,))
x2 = keras.layers.Dense(8, activation='relu')(input2)
# 相当于 subtracted = keras.layers.subtract([x1, x2])
subtracted = keras.layers.Subtract()([x1, x2])

out = keras.layers.Dense(4)(subtracted)
model = keras.models.Model(inputs=[input1, input2], outputs=out)

Multiply

keras.layers.Multiply()

计算一个列表的输入张量的(逐元素间的)乘积。
相乘层接受一个列表的张量, 所有的张量必须有相同的输入尺寸, 然后返回一个张量(和输入张量尺寸相同)。

Average

keras.layers.Average()

计算一个列表的输入张量的平均值。
平均层接受一个列表的张量, 所有的张量必须有相同的输入尺寸, 然后返回一个张量(和输入张量尺寸相同)。

Maximum

keras.layers.Maximum()

计算一个列表的输入张量的(逐元素间的)最大值。
最大层接受一个列表的张量, 所有的张量必须有相同的输入尺寸, 然后返回一个张量(和输入张量尺寸相同)。

Concatenate

keras.layers.Concatenate(axis=-1)

串联一个列表的输入张量。
串联层接受一个列表的张量, 除了串联轴之外,其他的尺寸都必须相同, 然后返回一个由所有输入张量串联起来的输出张量。
参数

  • axis: 串联的轴。
  • **kwargs: 层关键字参数。

Dot

keras.layers.Dot(axes, normalize=False)

计算两个张量之间样本的点积
例如,如果作用于输入尺寸为(batch_size, n)的两个张量 a 和 b, 那么输出结果就会是尺寸为(batch_size, 1)的一个张量。 在这个张量中,每一个条目 i 是 a[i] 和 b[i] 之间的点积。

参数
axes: 整数或者整数元组, 一个或者几个进行点积的轴。
normalize: 是否在点积之前对即将进行点积的轴进行 L2 标准化。 如果设置成 True,那么输出两个样本之间的余弦相似值。
**kwargs: 层关键字参数。

add

keras.layers.add(inputs)

Add 层的函数式接口。
参数
inputs: 一个列表的输入张量(列表大小至少为 2)。
**kwargs: 层关键字参数。
返回
一个张量,所有输入张量的和。
例子

import keras

input1 = keras.layers.Input(shape=(16,))
x1 = keras.layers.Dense(8, activation='relu')(input1)
input2 = keras.layers.Input(shape=(32,))
x2 = keras.layers.Dense(8, activation='relu')(input2)
added = keras.layers.add([x1, x2])

out = keras.layers.Dense(4)(added)
model = keras.models.Model(inputs=[input1, input2], outputs=out)

subtract

keras.layers.subtract(inputs)

Subtract 层的函数式接口。
参数
inputs: 一个列表的输入张量(列表大小准确为 2)。
**kwargs: 层的关键字参数。
返回
一个张量,两个输入张量的差。
例子

import keras

input1 = keras.layers.Input(shape=(16,))
x1 = keras.layers.Dense(8, activation='relu')(input1)
input2 = keras.layers.Input(shape=(32,))
x2 = keras.layers.Dense(8, activation='relu')(input2)
subtracted = keras.layers.subtract([x1, x2])

out = keras.layers.Dense(4)(subtracted)
model = keras.models.Model(inputs=[input1, input2], outputs=out)

multiply

keras.layers.multiply(inputs)

Multiply 层的函数式接口。
参数
inputs: 一个列表的输入张量(列表大小至少为 2)。
**kwargs: 层的关键字参数。
返回
一个张量,所有输入张量的逐元素乘积。

average

keras.layers.average(inputs)

Average 层的函数式接口。
参数
inputs: 一个列表的输入张量(列表大小至少为 2)。
**kwargs: 层的关键字参数。
返回
一个张量,所有输入张量的平均值。

maximum

keras.layers.maximum(inputs)
Maximum 层的函数式接口。

参数

inputs: 一个列表的输入张量(列表大小至少为 2)。
**kwargs: 层的关键字参数。
返回

一个张量,所有张量的逐元素的最大值。

concatenate

keras.layers.concatenate(inputs, axis=-1)
Concatenate 层的函数式接口。

参数

inputs: 一个列表的输入张量(列表大小至少为 2)。
axis: 串联的轴。
**kwargs: 层的关键字参数。
返回

一个张量,所有输入张量通过 axis 轴串联起来的输出张量。

dot

keras.layers.dot(inputs, axes, normalize=False)
Dot 层的函数式接口。

参数

inputs: 一个列表的输入张量(列表大小至少为 2)。
axes: 整数或者整数元组, 一个或者几个进行点积的轴。
normalize: 是否在点积之前对即将进行点积的轴进行 L2 标准化。 如果设置成 True,那么输出两个样本之间的余弦相似值。
**kwargs: 层的关键字参数。
返回
一个张量,所有输入张量样本之间的点积。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值