1.wide&deep模型介绍
传送门
2.函数式API实现模型
input = keras.layers.Input(shape = x_train.shape[1:])
hidden1 = keras.layers.Dense(30, activation='relu')(input)
hidden2 = keras.layers.Dense(30, activation='relu')(hidden1)
concat = keras.layers.concatenate([input, hidden2])
output = keras.layers.Dense(1)(concat)
model = keras.models.Model(inputs = [input], outputs = [output])
3.子类API实现模型
class WideDeepModel(keras.models.Model):
def __init__(self):
super(WideDeepModel, self).__init__()
'''定义模型的层次'''
self.hidden1_layer = keras.layers.Dense(30, activation='relu')
self.hidden2_layer = keras.layers.Dense(30, activation='relu')
self.output_layer = keras.layers.Dense(1)
def call(self, input):
'''完成模型的正向计算'''
hidden1 = self.hidden1_layer(input)
hidden2 = self.hidden2_layer(hidden1)
concat = keras.layers.concatenate([input, hidden2])
output = self.output_layer(concat)
return output
model = keras.models.Sequential([
WideDeepModel(),
])
model.build(input_shape = (None, 8))