畅游人工智能之海--Keras教程之融合层
畅游人工智能之海--Keras教程之融合层
各位读者大家好,上周我们已经详细讲解了Keras的卷积层和池化层,相信大家经过学习已经对两者有了一个清晰的认识,也能更好地把它们运用到图像处理中。池化层和卷积层是非常重要的网络层类型,大家在学习之后也需要动手实践去更好地理解它们。鉴于上周学习了比较难的网络层,那么今天我们就来放松一下,学习Keras中比较简单的融合层。让我们开始今天的学习吧
Add层
1 | keras.layers.Add() |
作用:
计算输入张量列表的和。
输入尺寸:
它接受一个张量的列表, 所有的张量必须有相同的输入尺寸, 然后返回一个张量(和输入张量尺寸相同)。
输出尺寸:
一个张量,与输入张量列表的张量尺寸一致。
例子:
1 | input1 = keras.layers.Input(shape=(16,)) |
Subtract层
1 | keras.layers.Subtract() |
功能:
计算两个输入张量的差。
输入尺寸:
它接受一个长度为 2 的张量列表, 两个张量必须有相同的尺寸,然后返回一个值为 (inputs[0] - inputs[1]) 的张量, 输出张量和输入张量尺寸相同。
输出尺寸:
一个张量,与输入张量列表的张量尺寸一致。
例子:
1 | input1 = keras.layers.Input(shape=(16,)) |
Multiply层
1 | keras.layers.Multiply() |
功能:
计算输入张量列表的(逐元素间的)乘积。
输入大小:
它接受一个张量的列表, 所有的张量必须有相同的输入尺寸, 然后返回一个张量(和输入张量尺寸相同)。
输出大小:
一个张量,与输入张量列表的张量尺寸一致。
例子:
1 | input1 = keras.layers.Input(shape=(16,)) |
Average层
1 | keras.layers.Average() |
功能:
计算输入张量列表的平均值。
输入:
它接受一个张量的列表, 所有的张量必须有相同的输入尺寸, 然后返回一个张量(和输入张量尺寸相同)。
输出:
一个张量,与输入张量列表的张量尺寸一致。
例子:
1 | input1 = keras.layers.Input(shape=(16,)) |
Maximum层
1 | keras.layers.Maximum() |
功能:
计算输入张量列表的(逐元素间的)最大值。
输入尺寸:
它接受一个张量的列表, 所有的张量必须有相同的输入尺寸, 然后返回一个张量(和输入张量尺寸相同)。
输出尺寸:
一个张量,与输入张量列表的张量尺寸一致。
例子:
1 | input1 = keras.layers.Input(shape=(16,)) |
Concatenate层
1 | keras.layers.Concatenate( |
功能:
连接一个输入张量的列表。
输入尺寸:
它接受一个张量的列表, 除了连接轴之外,其他的尺寸都必须相同, 然后返回一个由所有输入张量连接起来的输出张量。
输出尺寸:
列表中所有张量根据连接轴连接之后形成的张量大小
例子:
1 | input1 = keras.layers.Input(shape=(16,)) |
Dot层
1 | keras.layers.Dot( |
功能:
计算两个张量之间样本的点积。
输入尺寸:
它接受一个长度为 2 的张量列表, 两个张量必须有相同的尺寸,假设两个张量分别为a和b,则返回一个值为∑(a[i] + b[i])的张量。
输出尺寸:
(batch_size,1)
例子:
1 | input1 = keras.layers.Input(shape=(16,)) |
相信大家经过今天的学习,能够对融合层的类型和功能有一个清晰的认知,融合层也是重要的网络层,虽然简单但很重要,它在构造结构复杂的Model类模型中起到了很重要的作用,所以希望各位能亲手实践以对它有更好地认识,大家一起加油!