Keras官方中文文檔:融合層Merge
阿新 • • 發佈:2018-03-10
put 函數式 首字母 人工智能 余弦相似性 bat 調用 cti pytho
Merge層
Merge層提供了一系列用於融合兩個層或兩個張量的層對象和方法。以大寫首字母開頭的是Layer類,以小寫字母開頭的是張量的函數。小寫字母開頭的張量函數在內部實際上是調用了大寫字母開頭的層。
Add
keras.layers.Add()
添加輸入列表的圖層。
該層接收一個相同shape列表張量,並返回它們的和,shape不變。
Example
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]) # equivalent to added = keras.layers.add([x1, x2]) out = keras.layers.Dense(4)(added) model = keras.models.Model(inputs=[input1, input2], outputs=out)
SubStract
keras.layers.Subtract()
兩個輸入的層相減。
它將大小至少為2,相同Shape的列表張量作為輸入,並返回一個張量(輸入[0] - 輸入[1]),也是相同的Shape。
Example
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) # Equivalent to 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()
該層接收一個列表的同shape張量,並返回它們的逐元素積的張量,shape不變。
Average
keras.layers.Average()
該層接收一個列表的同shape張量,並返回它們的逐元素均值,shape不變。
Maximum
keras.layers.Maximum()
該層接收一個列表的同shape張量,並返回它們的逐元素最大值,shape不變。
Concatenate
keras.layers.Concatenate(axis=-1)
該層接收一個列表的同shape張量,並返回它們的按照給定軸相接構成的向量。
參數
- axis: 想接的軸
- **kwargs: 普通的Layer關鍵字參數
Dot
keras.layers.Dot(axes, normalize=False)
計算兩個tensor中樣本的張量乘積。例如,如果兩個張量a
和b
的shape都為(batch_size, n),則輸出為形如(batch_size,1)的張量,結果張量每個batch的數據都是a[i,:]和b[i,:]的矩陣(向量)點積。
參數
- axes: 整數或整數的tuple,執行乘法的軸。
- normalize: 布爾值,是否沿執行成績的軸做L2規範化,如果設為True,那麽乘積的輸出是兩個樣本的余弦相似性。
- **kwargs: 普通的Layer關鍵字參數
add
keras.layers.add(inputs)
Add層的函數式包裝
參數:
- inputs: 長度至少為2的張量列表A
- **kwargs: 普通的Layer關鍵字參數
返回值
輸入列表張量之和
Example
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的張量列表A
- **kwargs: 普通的Layer關鍵字參數
返回值
輸入張量列表的差別
Example
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: 普通的Layer關鍵字參數
返回值
輸入列表張量之逐元素積
average
keras.layers.average(inputs)
Average的函數包裝
參數:
- inputs: 長度至少為2的張量列表
- **kwargs: 普通的Layer關鍵字參數
返回值
輸入列表張量之逐元素均值
maximum
keras.layers.maximum(inputs)
Maximum的函數包裝
參數:
- inputs: 長度至少為2的張量列表
- **kwargs: 普通的Layer關鍵字參數
返回值
輸入列表張量之逐元素均值
concatenate
keras.layers.concatenate(inputs, axis=-1)
Concatenate的函數包裝
參數
- inputs: 長度至少為2的張量列
- axis: 相接的軸
- **kwargs: 普通的Layer關鍵字參數
dot
keras.layers.dot(inputs, axes, normalize=False)
Dot的函數包裝
參數
- inputs: 長度至少為2的張量列
- axes: 整數或整數的tuple,執行乘法的軸。
- normalize: 布爾值,是否沿執行成績的軸做L2規範化,如果設為True,那麽乘積的輸出是兩個樣本的余弦相似性。
- **kwargs: 普通的Layer關鍵字參數
艾伯特(http://www.aibbt.com/)國內第一家人工智能門戶
Keras官方中文文檔:融合層Merge