【发布时间】:2018-11-22 17:02:42
【问题描述】:
我对 Keras 比较陌生,我即将建立一个 Dueling Q-Network 来训练一个 KI。我找到了一个代码 sn-p 来构建一个看起来很有效的模型。我只是不知道为什么,因为我对 Keras 中的 lambda 表达式不太熟悉。任何人都可以解释一下在以下模型中创建 lambda 层的工作原理吗? 非常感谢您!
def build_model():
model = Sequential()
model.add(Dense(units=16, activation='relu', input_dim = 2))
model.add(Dense(units=32, activation='relu'))
model.add(Dense(units=9, activation='relu'))
#I definitely don't understand how the following layer works:
model.add(Lambda(lambda i: K.expand_dims(i[:,0],-1) + i[:,1:] - K.mean(i[:,1:], keepdims=True), output_shape=(8,)))
model.add(Dense(units=8, activation='linear'))
model.compile(loss='mse',
optimizer = RMSprop(lr=0.001) )
return model
【问题讨论】:
-
如果您需要更多帮助,请告诉我。
-
谢谢你,你下面的回答完全解决了我理解这件事的问题:)
标签: python machine-learning lambda keras deep-learning