Lambda()层函数

网络中添加自定义层

 

import numpy as np
from keras.models import Sequential
from keras.layers import Dense, Activation, Reshape
from keras.layers import merge
# from keras.utils.visualize_util import plot
from keras.layers import Input, Lambda
from keras.models import Model
from keras.utils import plot_model
def slice(x, index):
    return x[:, :, index] #x是一个4行2列的矩阵,index=0,就是取出x中第0列,index=1,就是取出x中第1列
a = Input(shape=(4, 2))
x1 = Lambda(slice, output_shape=(4, 1), arguments={'index': 0})(a)
x2 = Lambda(slice, output_shape=(4, 1), arguments={'index': 1})(a)
x1 = Reshape((4, 1, 1))(x1)
x2 = Reshape((4, 1, 1))(x2)
output = [x1, x2]
model = Model(inputs=a, outputs=output)
model.summary()
model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])
x_test = np.array([[[1, 2], [2, 3], [3, 4], [4, 5]]])
print(model.predict(x_test))

 

你可能感兴趣的:(Lambda()层函数)